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