2012-06-07 111 views
0

沒有與MS SQL Server 2008的支持,同時支持它的MS SQL Server 2005JDBC驅動程序類與SQL Server在我的Java代碼JDBC驅動程序類2008

我已經把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) 

plz幫我解決這個問題..

+1

你爲什麼將MySQL與MS SQL混合? – Ewald

+0

你可以顯示代碼進行連接,包括連接細節嗎? –

回答

0

請檢查你的jdbc驅動版本。 「Microsoft JDBC Driver 4.0」適用於您的ms sql server 2008.

+0

我已經在我的機器上安裝了sqljdbc4。 –

0

如果您使用的是SQL Server 2008,請將您的驅動程序類更改爲 - com.microsoft.jdbc.sqlserver.SQLServerDriver。連接應該可以工作。如果存在

+0

另外,使用正確的jdbc jar,否則你會得到相同的連接錯誤 – Aritra

+0

驅動類應該是com.microsoft.sqlserver.jdbc.SQLServerDriver而不是com.microsoft.jdbc.sqlserver.SQLServerDriver –

0

檢查「hj_cnb_ci」或數據庫名創建它的數據庫服務器上

+2

歡迎來到Stack Overflow!在回答問題時,最好儘可能詳細說明事情,以便其他讀者可以充分利用您的知識。謝謝! – tmesser

0

請檢查您的數據庫名稱。加載課程時無需致電newInstance();它將調用其靜態塊並調用Driver manager類的registerDriver()方法,並將其參數作爲參數傳遞。

此方法攜帶Driver類的對象。當您調用驅動程序管理器的getConnection()方法時,它將在該對象的幫助下,通過它調用驅動程序類方法連接。