2017-06-29 124 views
0

我很難將我的Microsoft SQL Server數據庫表連接到我的Java項目,成功設計了我的項目。將Microsoft SQL Server數據庫連接到我的Java項目

每當我跑我的連接,該項目框架加載成功,但因爲我通知沒有合適的驅動程序找到我的數據庫的數據庫被破壞。

我已經將我的sqljdbc4驅動程序添加到項目的庫中,它仍然會提供此類警報。

這裏是我的連接代碼:

public void doConnect(){ 
     try{ 
     String un = "casey"; 
     String pw = "****"; 
     String host = "jdbc:sqlserver://caseydido\\mssqlexpress:1433;databaseName=stock"; 

     String sql = "SELECT * FROM STAFF_DATA"; 
     //loading the driver class 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //This is for driver sqljdbc2* 
//  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); /*This is for driver sqljdbc4*/ 
     Connection conn = DriverManager.getConnection(un, pw, host); 
     Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
     ResultSet rs = stmt.executeQuery(sql); 
     while (rs.next()){ 
      System.out.println(rs.getString(1)); 
      conn.close(); 
     } 

注意凱西是數據庫表的用戶名,數據庫的名稱是股票,****代表我的密碼。

我也嘗試添加sqljdbc4驅動程序路徑到我的系統環境變量路徑,它仍然沒有工作。

+2

您可能需要仔細檢查手冊中'DriverManager.getConnection()'的簽名。 – mustaccio

+2

更具體一點:簽名是['DriverManager。 \t getConnection(String url,String user,String password)'](http://docs.oracle.com/javase/8/docs/api/java/sql/DriverManager.html#getConnection-java.lang.String-java .lang.String-java.lang.String-)換句話說:你用錯誤順序的參數調用它。一些事情,順便說一句,如果你真的閱讀了整個異常消息,應該立即顯現出來。 –

+0

不相關,但:''Class.forName()'不再需要。 –

回答

0

首先第一件事情:

您需要更正下面的代碼,由馬克Rotteveel提及。另外,考慮爲你的變量使用有意義的名字,以便你瞭解到底發生了什麼。

Connection conn = DriverManager.getConnection(un, pw, host); 

以下幾點:

Connection conn = DriverManager.getConnection(host, un, pw); 

您需要添加SQLJDBC連接器罐子在項目的構建路徑(如果你使用的是IDE像ECLIPSE),並考慮將路徑連接器罐環境變量CLASSPATH

請按照MSDN文檔使用正確的語法構造主機URL。文檔here

編輯-1:

根據你的代碼,連接應該是因爲你犯了一個錯誤的被關閉。您需要將此更改爲:

while (rs.next()){ 
    System.out.println(rs.getString(1)); 
    conn.close(); 
} 

以下爲解決您的問題!

while (rs.next()){ 
    System.out.println(rs.getString(1)); 
} 
conn.close(); 

希望這有助於!

+0

感謝您對N00b程序員的迴應。我瞭解我的變量名稱。我已將sqljdbc4添加到我的項目庫中。至於連接(host,un,pw),我試過了,它顯示錯誤。解決了,但現在它顯示了CONNECTION IS CLOSED ....同時,我的項目成功打開了 –

+0

@CaseyRunor,根據來自OP的最新評論編輯了我的答案 –

相關問題