【问题标题】:How to resolve java.sql.SQLException: No suitable driver found for SQLServer 2008 R2?如何解决 java.sql.SQLException:找不到适合 SQLServer 2008 R2 的驱动程序?
【发布时间】:2021-01-03 09:29:09
【问题描述】:

我有一个连接到 SQLServer 的示例代码如下:

Connection conn=null;
try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
     conn= DriverManager.getConnection(" jdbc:sqlserver://localhost:1433;instance=SQLEXPRESS;databaseName=Test" );

    System.out.println("connected");


} catch (ClassNotFoundException e) {
    e.printStackTrace();
} catch (SQLException e) {
    e.printStackTrace();
}

当我执行这段代码时,我得到了下面给出的异常:

java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;databaseName=Test
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:270)
    at JDBCSample.main(JDBCSample.java:14)

【问题讨论】:

  • 为什么在你的连接地址jdbc前面有一个空格?上次我这样做时应该是 database 而不是 databaseName,但这可能是同义词或版本已更改
  • 使用站点搜索框,有很多问题有相同的错误,例如this one。用您的情况有何不同以及您已经尝试过什么来更新您的问题。

标签: java sql-server sql-server-2008 jdbc


【解决方案1】:

我认为 SQLServer 的 jar 不支持或在连接字符串中输入错误。

从这里下载与 SQLServer 2008 R2 兼容的 jar:

https://www.microsoft.com/en-in/download/details.aspx?id=11774

步骤:

  • 点击下载:

  • 选择sqljdbc_6.0.8112.200_enu.tar.gzsqljdbc_6.0.8112.200_enu.zip(如果显示)。

  • 点击下一步开始下载。

  • 下载后,解压内容。现在,进入sqljdbc_6.0/enu/jre8sqljdbc_6.0/enu/jre7,并根据您使用的jdk 复制jar。

在项目的类路径中添加jar。

修正这条线

Connection conn = DriverManager.getConnection(" jdbc:sqlserver://localhost:1433;databaseName=Test" );

通过删除空格来实现这一点。

Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Test");

【讨论】:

  • 如果类路径中没有包含 Class.forName 调用,这不会导致 ClassNotFoundException 吗?
  • 编辑后的答案现在是我对如何解决此问题的最佳猜测。如果有问题的用户 (@nazanin n) 确认它为他们解决了问题,我会投票赞成。
  • 我照你说的做了,但我仍然收到错误@AnishB。
  • @AnishB。我不知道哪个版本是正确的,我使用的是 sql server 2008R2
  • @AnishB。答案中的那个??非常感谢
【解决方案2】:

您似乎需要一个支持您的 SQL 数据库类型和版本的 JDBC 驱动程序。也许您的驱动程序版本是错误的? 你应该看看这个:https://javarevisited.blogspot.com/2016/09/javasqlsqlexception-no-suitable-driver-mysql-jdbc-localhost.html 第 689 行和第 270 行的 DriverManager 在做什么?

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-07-04
  • 2016-11-28
  • 2011-08-02
  • 2012-08-28
  • 2015-07-05
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多