String url = "jdbc:mysql://localhost:3306/test";
Connection conn;
PrintWriter pw = response.getWriter();
Statement stmt;
try {
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e) {
pw.println("ClassNotFoundException");
pw.println(e.getMessage());
}

try {
conn = DriverManager.getConnection(url,"root","");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at servlet.ConnJDBC.doPost(ConnJDBC.java:40)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
at java.lang.Thread.run(Thread.java:662)

解决方案 »

  1.   

     No suitable driver found
      

  2.   

    同样的代码,我写在java类中,在控制台输出就可以执行,并且能够查询到数据库中的内容。可是写在servlet里面,在jsp中执行输出就出错。
      

  3.   

    import java.sql.DriverManager;
    import java.sql.ResultSet;public class Test {
    public static void main(String[] args) {
    String url = "jdbc:mysql://localhost:3306/test";
    java.sql.Connection conn = null;
    java.sql.Statement statement = null;
    try {
    Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
    System.out.println("ClassNotFound!");
    System.out.println(e.getMessage());
    }

    try {
    conn = DriverManager.getConnection(url, "root", "");
    if(conn != null) {
    System.out.println("connecte database!");
    }
    statement = conn.createStatement();
    ResultSet rs = statement.executeQuery("select * from student");
    while(rs.next()) {
    String id = rs.getString(1);
    String name = rs.getString("name");
    String sex = rs.getString("sex");
    int age = rs.getInt(4);
    System.out.println(id+"-"+name+"-"+sex+"-"+age);
    }
    statement.close();
    conn.close();
    } catch (Exception e) {
    // TODO: handle exception
    }
    }
    }这段代码写在了一个java类中,用控制台输出得到正确的结果:
    connecte database!
    1-deity-f-21
    2-yumo-m-23说明数据库驱动类和数据库连接都正常。但是写在servlet中,在jsp中调用就出错。说找不到驱动类。我把驱动类放在了tomcat的lib里,也放在了webapps的我的网站的lib里面一份。在myeclipse的项目中也导入了一份
      

  4.   

    可以判断不是少驱动包的问题。(这个问题会出现classnotfound exception)
    驱动包你放一个地方就行了,不要到处乱放,放多份反而容易出现jar包冲突的问题。
    conn = DriverManager.getConnection(url, "root", "");出错是这一句。
    我之前遇到过这个问题,是url、username或密码不对
    另外反射是不需要导包的哦