2011-09-06 87 views
0

我有一个试图连接到MS SQL数据库的JAVA类。现在,当我尝试连接数据库时,出现错误“找不到合适的驱动程序.....”将MS SQL数据库连接到Java程序

为什么会发生这种情况?

这是代码。

DB db = bew DB(); 
db.dbConnect(); 

... 

class DB 
{ 
    public void dbConnect() { 
     try 
     { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
      String connectionUrl = "jdbc:sqlserver://web.address.com;" + 
       "databaseName=testdb;user=user.name;password=*****;"; 

      Connection con = DriverManager.getConnection(connectionUrl); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace();     
     } 
    } 
} 

我使用sqljdbc.jar作为我的驱动程序,并将其添加到我的类路径中。

回答

4

的SQLException:没有合适的驱动程序找到

这个异常是指其可被用于获取连接的JDBC URL不被任何JDBC驱动程序的支持,据加载。所以,这个例外可能至少有三个可能的原因:

  • 正确的驱动程序根本没有加载。
  • 加载驱动程序失败,异常被抑制,从而导致代码继续运行并尝试获取连接而不是中止。
  • JDBC URL显然是错误的。

让我们看你做了什么远:

  • 您使用的是Microsoft SQL Server数据库。
  • 您已经加载了Sun JDBC-ODBC桥驱动程序。
  • 您正在使用特定于SQL Server JDBC驱动程序的JDBC URL,它看起来正确。

啊对,你已经加载了错误的JDBC驱动!

您需要Microsoft SQL Server JDBC driver或至少jTDS JDBC driver,它实际上是第三方驱动程序,它也支持SQL Server,但被告知比Microsoft自己的JDBC驱动程序好得多。您可以在文档中找到您需要指定的驱动程序类名称来加载驱动程序。对于Microsoft之一,它的下面:

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

其实我已经下载了我的司机在你已经提供“Microsoft SQL Server的JDBC驱动程序”的网站。我想知道为什么驱动程序名称是不同的,而不是“com.microsoft.jdbc.sqlserver.SQLServerDriver”。 ( –

+0

也许你是在没有阅读文档的情况下复制了错误的代码片段?JDBC-ODBC桥驱动程序只适用于MS Access或任何其他可以创建DSN的数据库。 – BalusC