2017-05-07 6 views
0

Dies ist mein einfache Code-Konnektivität mit MySQL zu testen:ClassNotFoundException in Apache Tomcat 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(); 
    } 
} 

Dieser Code funktioniert einwandfrei und die Aktualisierung meine bereits bestehende Tabelle in der Datenbank, aber wenn ich versuche, eine Verbindung zu schaffen, in Meine Web App auf Apache wirft ClassNotFoundException. Der Quellcode in meiner Anwendung ist

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() { 

    } 
} 

Wie kann ich das beheben?

+0

verwenden Sie Oracle oder MySQL? –

+0

Die JDBC/ODBC-Brücke wurde in Java 8 entfernt, stattdessen sollten Sie den MySQL Connector/J-Treiber mit einer ** anderen ** JDBC-URL verwenden. –

Antwort

0

Sie verwenden den JDBC-Treiber Type1, um eine Verbindung zur Mysql-Datenbank herzustellen. Bitte überprüfen Sie Tomcat und seine jdk-Version. Ab Jdk8 darf der Typ1-Treiber nicht mehr verwendet werden.

Alternativ können Sie Mysql Type4-Treiber für den Betrieb verwenden. Hier ist link

Einmal heruntergeladen mysql Connector-Treiber hinzufügen, um/WEB-INF/lib-Ordner.

Hoffentlich sollte es Problem lösen.

Verwandte Themen