0

私のJavaコードでは、JDBCドライバークラスはms sql server 2008ではサポートされていませんが、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)

この問題を解決するのを手伝ってください..

4

4 に答える 4

0

SQL Server 2008を使用している場合は、ドライバークラスを--com.microsoft.jdbc.sqlserver.SQLServerDriverに変更してください。接続が機能するはずです。

于 2012-06-10T14:30:59.620 に答える
0

「hj_cnb_ci」が存在するかどうか、またはDBNameがDBサーバーに作成したかどうかを確認します

于 2012-10-23T21:59:50.090 に答える
0

jdbc ドライバーのバージョンを確認してください。「Microsoft JDBC Driver 4.0」は、ms sql server 2008 に適しています。

于 2012-06-07T11:35:48.217 に答える
0

データベース名を確認してください。newInstance()クラスをロードするときに呼び出す必要はありません。静的ブロックを呼び出しregisterDriver()、ドライバー マネージャー クラスのメソッドを呼び出し、その参照をパラメーターとして渡します。

Driverこのメソッドは、クラスのオブジェクトを運びます。ドライバー マネージャーのgetConnection()メソッドを呼び出すと、内部的に、そのオブジェクトの助けを借りてドライバー クラス メソッド接続が呼び出されます。

于 2013-02-26T17:35:51.677 に答える