我試圖讓Java應用程序與Microsoft SQL Server數據庫對話。Java JDBC - > SQL Server
- 我從Microsoft網站下載了sqljdbc_4.0.2206.100_enu.tar.gz,因爲它不在普通的Maven樣式的Java庫存儲庫中。
- 我手動安裝在本地Maven存儲庫中。
- 我使用以下超級簡單測試代碼:
- 我可以訪問SQLWorkbenchJ中的基於Java的SQL查詢工具中的數據庫,並獲得對這些SQL命令的正常即時響應。
- 服務器是Windows 7上的SQL Server 2005.
客戶端是Java 7.我嘗試過Java 8以及沒有區別。
public static void superSimpleJdbcTest(String jdbcUrl, String user, String password) throws SQLException { try (Connection dbConnection = DriverManager.getConnection(jdbcUrl, user, password)) { System.out.println("opened connection"); try (Statement statement = dbConnection.createStatement()) { System.out.println("created statement"); System.out.println("executing create table command..."); statement.execute("create table something (id int primary key, name varchar(100))"); System.out.println("completed create table command"); System.out.println("executing insert command..."); statement.executeUpdate("insert into something (id, name) values (1, 'Brian')"); System.out.println("insert command completed"); } } }
它零星的工作,但通常掛在create table命令。如果我註釋掉它,它掛在插入命令上。我無法想象什麼是錯的。
在這種情況下,「掛起」的定義是什麼? – 2014-09-26 16:16:29
我等了幾分鐘,並且statement.execute或statement.executeUpdate命令永遠不會返回。這些都是微不足道的命令。當我用其他數據庫工具運行相同的命令時,服務器立即響應。 – clay 2014-09-26 16:18:11
*通常*可以,但這些驅動程序/版本最初是爲Java 5/6編寫的,您正在嘗試使用7或8 http://www.microsoft.com/en-us/download/details.aspx?id = 11774 – curtisk 2014-09-26 16:30:04