java.sql.SQLException:找不到适合localhost测试的驱动程序

时间:2011-12-14 18:26:40

标签: mysql gwt jdbc

当尝试连接到mysql时,我总是收到此错误:

  

java.sql.SQLException:找不到适合localhost测试的驱动程序

我已在我的应用中的mysql-connector.jar中添加了/WEB-INF/lib。我需要配置什么才能使其工作?我是否需要在web.xml中添加内容?我没有使用引擎。

这是我在服务器中的代码:

package com.mysql.server;

import java.sql.Connection; 
import java.sql.DriverManager;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.mysql.client.ConnDb;

public class ConnDbImpl extends RemoteServiceServlet implements ConnDb {
   public Connection con;
   @Override
    public String tryConn() {
     try{
       String host = "localhost";
       String db = "test";
       String driver = "com.mysql.jdbc.Driver";
       String user = "root";
       String pass = "pwd";

       Class.forName(driver).newInstance();
       con = DriverManager.getConnection(host+db, user, pass);
       return "Connected to Database";
     } catch(Exception ex) {
         return ex.toString();
     }    
   } 
}

4 个答案:

答案 0 :(得分:23)

根据Driver#acceptsURL()方法,任何加载的JDBC驱动程序都不接受JDBC URL时,您将收到此异常。您实际上忘记了JDBC驱动程序特定的URI前缀。对于MySQL JDBC驱动程序,这是jdbc:mysql://。完整的连接URL应如下所示:

con = DriverManager.getConnection("jdbc:mysql://localhost/test", user, pass);

另见:

答案 1 :(得分:6)

我发现此错误消息的另一个原因。在我的情况下,用户根本没有对数据库的特权,例如到选定的表格。亲爱的驱动程序开发人员,为什么要使用这些误导性的错误消息?很多人都有这个真正的麻烦。

答案 2 :(得分:0)

对我来说,它忘了在项目库中包含MySQLJDBC驱动程序。 DOH!

答案 3 :(得分:0)

这就是错误:

Connection connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/lib_db","root","root");

但当我改为:

Connection connection =DriverManager.getConnection("jdbc:mysql://localhost/db_name?"+"user=root&password=root");

错误消失了