java.sql.SQLException: 找不到适合 jdbc:sqlserver 的驱动程序... (intellij, maven)

Posted

技术标签:

【中文标题】java.sql.SQLException: 找不到适合 jdbc:sqlserver 的驱动程序... (intellij, maven)【英文标题】:java.sql.SQLException: No suitable driver found for jdbc:sqlserver... (intellij, maven) 【发布时间】:2016-11-10 10:14:17 【问题描述】:

我有上述错误,想知道该怎么做。 我已经做了以下事情:

    从微软网站下载 sqljdbc4.jar 将其安装到我的本地 maven 存储库中

    像这样在 pom.xml 中包含它:

    com.microsoft.sqlserver sqljdbc4 4.0

由于我使用的是jdbc4,我读到我不必调用Class.forName,而是可以直接建立与数据库的连接。 那么为什么我仍然会收到 nosuitabledriver 错误?

编辑: 当像下面这样使用 ClassForName 时,我得到一个 ClassNotFoundException。

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //I also tried Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
String dbURL = "jdbc:sqlserver://localhost;databaseName=test;integratedSecurity=trues";
conn = DriverManager.getConnection(dbURL);

【问题讨论】:

你可以试试Class.forName 确定吗? 请显示您尝试连接到数据库的代码。 试过了,然后得到“ClassNotFoundException”:) 我的意思是,请发布您的 Java 代码,如有必要,请同时发布您的项目结构,以便我们提供更多帮助。 如果您在 Class.forName 遇到 ClassNotFoundException,这意味着您的 java 类路径中没有有效的 sqljdbc4 java,请检查并从 Java 类路径扩展您的 jar,并确保有这个包("com.microsoft.jdbc.sqlserver.SQLServerDriver") 【参考方案1】:

首先您需要确保您的Driver classpath 正确classpath

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

改为:

 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

第二你需要确保你的dbURL正确dbURL:

String dbURL = "jdbc:sqlserver://localhost;databaseName=test;integratedSecurity=trues";

改为:

String dbURL = "jdbc:sqlserver://localhost:1443;databaseName=test;integratedSecurity=trues";

第三,在getConnection方法中添加你的数据库用户名和密码:

conn = DriverManager.getConnection(dbURL);

改为:

conn = DriverManager.getConnection(dbURL,"yourUserName","yourPass");

希望对你有帮助。

【讨论】:

@KevinWu,在这3个正确之后,如果你还有错误,请告诉我错误。 好吧,它并没有真正解决问题。错误出现在 Class.ForName 而不是连接期间。 ClassNotFoundException 又来了? 不是来自外部 jar,你需要检查你的 java 类路径中是否有 sql jar 我该怎么做?【参考方案2】:

我现在将外部模块添加到主目录而不是项目目录。我假设我需要在部署应用程序之前执行后者。但是现在,错误消失了。

【讨论】:

以上是关于java.sql.SQLException: 找不到适合 jdbc:sqlserver 的驱动程序... (intellij, maven)的主要内容,如果未能解决你的问题,请参考以下文章

Oracle DB:java.sql.SQLException:关闭连接

Cause: java.sql.SQLException: 请求的转换无效 ; uncategorized SQLException for SQL []; SQL state [99999]; er

java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 发生错误

Java:Sqlexception:位置不支持的 SQL92 令牌:178

java.sql.SQLException:接近“on”:语法错误问题

java.sql.SQLException:架构“ROOT”不存在