2015-06-20 227 views
0

我正在構建一個GWT程序,該程序在服務器端連接到名爲TheDatabase的數據庫。我通過在Java項目中運行代碼來測試我的代碼,並且它運行得非常好。然而,當我嘗試運行它作爲GWT項目的一部分,我得到這個錯誤:找不到合適的JDBC驅動程序驅動程序

java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;databaseName=TheDatabase;integratedSecurity=true; 

這是我的功能連接到一個數據庫:

public void getConnection(String server, String database) throws SQLException{ 
    this.connection = DriverManager.getConnection("jdbc:sqlserver://" + server + ";" + 
      "databaseName=" + database + 
      ";integratedSecurity=true;"); 
} 

這就是我所謂的代碼當錯誤發生:

private ResultSet executeQuery(String sqlCommand) throws SQLException{ 
    Statement stat = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); 
    return stat.executeQuery(sqlCommand); 
} 
+0

你使用的驅動程序是什麼,以及什麼數據庫,即MongoDB,MySQL? – smoggers

+0

我在sqljdbc4.jar中使用SQL Server。我提供了.jar,所以我不知道它來自哪裏。 – jpyams

回答

1

服務器端依賴關係應該是在您的戰爭文件夾的WEB-INF/lib文件夾中。將它們放在DevMode類路徑中是不夠的。

0

您必須下載驅動程序的.jar文件,並使其可在您claspath,這樣DriverManager才能通過反射實例化,根據您的連接字符串。

但是,在GWT中,當您使用Java編程時,有一個服務器端代碼和一個客戶端代碼,最終編譯爲Javascript。你確定你沒有試圖從代碼的客戶端連接到數據庫? (基於你的評論,它在你把它變成一個GWT項目之前就已經起作用了)。

此外,還要確保你沒有檢查「谷歌App Engine的」設置你的項目,因爲GAE不與JDBC工作(檢查這個以防萬一:JDBC Driver does not work with GWT?

+0

我在Eclipse中的構建路徑上有JDBC SQL Server jar。還有什麼我需要做的嗎? – jpyams

+1

我使用GWT特定部件編輯了我的答案。 – jotadepicas

+0

我的代碼位於服務器包中,因此它不應該在客戶端上運行。它有一個參數化的構造函數,所以我很確定它會失敗,如果它在客戶端(這個類是從服務器調用的)。 – jpyams

相關問題