找不到合适的JDBC驱动程序驱动程序
我正在构建一个GWT程序,该程序在服务器端连接到名为TheDatabase的数据库。我通过在Java项目中运行代码来测试我的代码,并且它运行得非常好。然而,当我尝试运行它作为GWT项目的一部分,我得到这个错误:找不到合适的JDBC驱动程序驱动程序
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;databaseName=TheDatabase;integratedSecurity=true;
这是我的功能连接到一个数据库:
public void getConnection(String server, String database) throws SQLException{
this.connection = DriverManager.getConnection("jdbc:sqlserver://" + server + ";" +
"databaseName=" + database +
";integratedSecurity=true;");
}
这就是我所谓的代码当错误发生:
private ResultSet executeQuery(String sqlCommand) throws SQLException{
Statement stat = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
return stat.executeQuery(sqlCommand);
}
服务器端依赖关系应该是在您的战争文件夹的WEB-INF/lib
文件夹中。将它们放在DevMode类路径中是不够的。
您必须下载驱动程序的.jar文件,并使其可在您claspath,这样DriverManager才能通过反射实例化,根据您的连接字符串。
但是,在GWT中,当您使用Java编程时,有一个服务器端代码和一个客户端代码,最终编译为Javascript。你确定你没有试图从代码的客户端连接到数据库? (基于你的评论,它在你把它变成一个GWT项目之前就已经起作用了)。
此外,还要确保你没有检查“谷歌App Engine的”设置你的项目,因为GAE不与JDBC工作(检查这个以防万一:JDBC Driver does not work with GWT?)
我在Eclipse中的构建路径上有JDBC SQL Server jar。还有什么我需要做的吗? – jpyams
我使用GWT特定部件编辑了我的答案。 – jotadepicas
我的代码位于服务器包中,因此它不应该在客户端上运行。它有一个参数化的构造函数,所以我很确定它会失败,如果它在客户端(这个类是从服务器调用的)。 – jpyams
你使用的驱动程序是什么,以及什么数据库,即MongoDB,MySQL? – smoggers
我在sqljdbc4.jar中使用SQL Server。我提供了.jar,所以我不知道它来自哪里。 – jpyams