【问题标题】:JDBC driver class not supported with sql server 2008sql server 2008 不支持 JDBC 驱动程序类
【发布时间】:2012-06-07 09:18:41
【问题描述】:

在我的 java 代码中,ms sql server 2008 不支持 JDBC 驱动程序类,但它与 ms sql server 2005 完美配合

我已经把 jdbc 驱动类“com.microsoft.sqlserver.jdbc.SQLServerDriver”

我的密码是

import java.sql.*;

  public class MysqlConnect{
  public static void main(String[] args) {
  System.out.println("MySQL Connect Example.");
  Connection conn = null;
  String url = "jdbc:sqlserver://SQLSERVERIP:1433;";
  String dbName = "DatabaseName=DBNAME";
  String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
  String userName = "sa"; 
  String password = "password";
  try {
  Class.forName(driver).newInstance();
  conn = DriverManager.getConnection(url+dbName,userName,password);
  System.out.println("Connected to the database");
  conn.close();
  System.out.println("Disconnected from database");
  } catch (Exception e) {
  e.printStackTrace();
  }
 }
}    

当我尝试连接时出现错误

com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "hj_cnb_ci
" requested by the login. The login failed.
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError
(SQLServerException.java:197)
        at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246
)
        at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerC
onnection.java:2529)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConne
ction.java:1905)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServer
Connection.java:41)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecu
te(SQLServerConnection.java:1893)
        at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4615)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLSe
rverConnection.java:1400)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLSer
verConnection.java:1045)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConne
ction.java:817)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerCon
nection.java:700)
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.
java:842)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at MysqlConnect.main(MysqlConnect.java:14)

请帮我解决这个问题..

【问题讨论】:

  • 为什么要将 MySQL 与 MS SQL 混合使用?
  • 你能显示建立连接的代码,包括连接细节吗?

标签: java sql-server-2008 jdbc


【解决方案1】:

请检查您的 jdbc 驱动程序版本。 “Microsoft JDBC Driver 4.0”适用于你的ms sql server 2008。

【讨论】:

    【解决方案2】:

    如果您使用的是 SQL Server 2008,请将您的驱动程序类更改为 -- com.microsoft.jdbc.sqlserver.SQLServerDriver 。连接应该可以工作。

    【讨论】:

    • 另外,请使用正确的 jdbc jar,否则会出现同样的连接错误
    • 驱动类应该是 com.microsoft.sqlserver.jdbc.SQLServerDriver 而不是 com.microsoft.jdbc.sqlserver.SQLServerDriver
    【解决方案3】:

    检查是否存在“hj_cnb_ci”或 DBName 在您的数据库服务器上创建它

    【讨论】:

    • 欢迎来到 Stack Overflow!在回答问题时,最好尽可能多地拼写出来,以便其他读者能够充分利用您的知识。谢谢!
    【解决方案4】:

    请检查您的数据库名称。加载类时无需调用newInstance();它将调用其静态块并调用驱动程序管理器类的registerDriver() 方法,并将其引用作为参数传递。

    此方法带有Driver 类的对象。当您调用驱动程序管理器的getConnection() 方法时,它会在该对象的帮助下调用驱动程序类方法连接。

    【讨论】:

      猜你喜欢
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多