以下のtestクラスを実行するとデータベースにデータの格納ができるのですが、
servletクラスでgetParameterを用い、jspページに入力された値を受け取り、
Daoクラスに用意したsql文実行用のメソッド(testクラスと同じ内容の、
データをinsertするsql文)を用いてデータベースに値を格納しようとすると
メソッドの戻り値が『ClassNotFoundException』になってしまいデータの格納ができません。
自分では解決できないのでご協力お願いいたします。
<<実行手順>>
動的WEBプロジェクト<プロパティー<javaのビルド・パス<ライブラリー<外部jarの追加でjdbcドライバーmysql-connecter-java-5.1.40-bin.jarを追加しています。
==========================testクラス=========================
package drinkMachine; import java.sql.*; public class test { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ try{ Connection conn = null; Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost/example1"; String host = "root"; String password = "******"; conn = DriverManager.getConnection(url,host,password); String sql = "INSERT INTO drinkMachine(code,name,unitprice,count) VALUES(?,?,?,?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1,"3"); pstmt.setString(2,"オレンジジュース"); pstmt.setString(3,"2"); pstmt.setString(4,"2"); int num = pstmt.executeUpdate(); System.out.println(num); }catch(ClassNotFoundException e){ e.printStackTrace(); System.out.println("a"); }catch(SQLException e){ e.printStackTrace(); System.out.println("b"); } }
}
==========================testクラス=========================
==========================jspページ==========================
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
=========================servletクラス========================
package drinkMachine; import java.io.*; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** •Servlet implementation class addController */ public class addController extends HttpServlet { private static final long serialVersionUID = 1L; /** •@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ /** •@see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); PrintWriter out = response.getWriter(); request.setCharacterEncoding("UTF-8"); String code = request.getParameter("code"); String name =request.getParameter("name"); String price = request.getParameter("price"); String count = request.getParameter("count"); T001_ITEMDao ti = new T001_ITEMDao(); int str = ti.addItem(name); out.print(str); }
}
=========================servletクラス========================
==========================Daoクラス===========================
package drinkMachine; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class T001_ITEMDao { public int addItem(String name){ try{ Connection conn = null; Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost/example1"; String host = "root"; String password = "******"; conn = DriverManager.getConnection(url,host,password); String sql = "INSERT INTO drinkMachine(code,name,unitprice,count) VALUES(?,?,?,?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1,"3"); pstmt.setString(2,"オレンジジュース"); pstmt.setString(3,"2"); pstmt.setString(4,"2"); int num = pstmt.executeUpdate(); return num; }catch(ClassNotFoundException e){ e.printStackTrace(); return 2; }catch(SQLException e){ e.printStackTrace(); return 3; }
}
}
========================Daoクラス===========================