2017-05-07 3 views
0

これは、MySQLとの接続をテストするために、私の単純なコードです:ClassNotFoundExceptionが8.5.14

import java.sql.*; 
import java.util.*; 

public class PreparedStatementTest { 

    public static void main(String[] args) throws Exception { 
     String[] str = {"ram", "shyam", "radhe", "lakhan"}; 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
     Connection con = DriverManager.getConnection("jdbc:odbc:shubh", "sa", "shubham"); 
     PreparedStatement ps = con.prepareStatement("insert into shubham_table values(?,?)"); 
     for (int i = 0; i < 4; i++) { 
      ps.setInt(1, i); 
      ps.setString(2, str[i]); 
      ps.executeUpdate(); 
     } 
     PreparedStatement prs = con.prepareStatement("select *from shubham_table where id=?"); 
     for (int i = 0; i < 4; i++) { 
      prs.setInt(1, i); 
      ResultSet rs = prs.executeQuery(); 
      while (rs.next()) { 
       System.out.print("id = " + rs.getInt(1)); 
       System.out.println("name = " + rs.getString(2)); 

      } 
     } 
     rs.close(); 
     prs.close(); 
     ps.close(); 
     con.close(); 
    } 
} 

このコードは正常に動作し、データベースに私の既存のテーブルを更新されるが、私は中に接続を作成しようとすると、 Apache上の私のWebアプリケーションはClassNotFoundExceptionを投げます。私のアプリケーションのソースコードは

import javax.servlet.*; 
import java.io.*; 
import java.sql.*; 
import java.util.*; 

public class RegFormServlet implements Servlet { 

    public void init(ServletConfig sc) throws ServletException { 

     System.out.println("created"); 
    } 

    public ServletConfig getServletConfig() { 
     return null; 
    } 

    public void service(ServletRequest req, ServletResponse res) throws 
      ServletException, IOException { 

     System.out.println("before con mysql"); 
     try { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
      Connection con = DriverManager.getConnection("jdbc:odbc:shubh", "sa", "shubham"); 

      String name = req.getParameter("name"); 
      String email = req.getParameter("email"); 
      String address = req.getParameter("address"); 

      Statement st = con.createStatement(); 
      String ddl = 
      "create table shubham_table3 (name varchar(30),e-mail 
      varchar(20) 
      ,address varchar 
      (100))"; 
     st.execute(ddl); 

      PreparedStatement ps = con.prepareStatement(
      "insert into shubham_table 
     values(?, ?, ?) 
      "); 
     ps.setString(1, name); 
      ps.setString(2, email); 
      ps.setString(3, address); 
      PrintWriter out = res.getWriter(); 
      out.println("You Are Registered Successfully yeah!!!!"); 
      st.close(); 
      ps.close(); 
      con.close(); 
     } catch (Exception e) { 
      System.out.println(e); 
     } 

    } 

    public String getServletInfo() { 
     return null; 
    } 

    public void destroy() { 

    } 
} 

どのように修正できますか?

+0

oracleまたはmysqlを使用していますか? –

+0

Java 8ではJDBC/ODBCブリッジが削除されていましたが、MySQL Connector/Jドライバを**別の** JDBC URLで使用する必要があります。 –

答えて

0

Type1 jdbcドライバを使用してMysqlデータベースに接続しています。 Tomcatとそのjdkバージョンを確認してください。 Jdk8以降Type1ドライバは使用できません。

また、Mysql Type4ドライバを使用して操作できます。ここにあるのはlink

ダウンロードしたmysqlコネクタドライバを/ WEB-INF/libフォルダに追加します。

うまくいけば問題を解決するはずです。

関連する問題