2013-11-28 65 views
0

我一直在嘗試在我的Java程序中實現基於JDBC的數據庫連接到任何數據庫管理系統。首先,我嘗試使用Microsoft SQL Server Management Studio中,我的代碼是這樣的:無法將Java程序鏈接到SQL數據庫

public class ConnectionCreate { 
    public connectionCreate(){ 
     try { 
      //SQL Server Manager Settings 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
      Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=test","test","test"); 
      System.out.println("Connection Established"); 

     }catch(Exception e){ 
      System.out.println(e); 
     } 
    } 
} 

我的測試數據庫被稱爲測試,在SQL Server Management Studio中託管在端口1433,並表示正在運行。我可以修改它通過工作室GUI,添加表等,但每當我打電話給我的Java代碼,它會失敗說:

Exception: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Invalid argument: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall. 

我檢查了所有我能想到來,jar文件肯定是被人發現了JDBC因爲Class.forName調用沒有問題。我一直在使用SQL Server網絡配置>協議,並確保啓用了所有連接類型,包括TCP/IP。我已經確定要使用的默認端口是1433.我甚至完全禁用了防火牆,但仍然拒絕工作。

出於絕望,我也嘗試了不同的數據庫管理工具。 XAMPP使用PhpmyAdmin和mysql。我再次正確安裝必需的.jar,參保它運行在網頁瀏覽器本地罰款和我的Java測試腳本使用下面的代碼:

public class ConnectionCreate { 
    public connectionCreate(){ 
     try { 
      //MySQL Settings 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", ""); 
      System.out.println("Connection Established"); 

     }catch(Exception e){ 
      System.out.println(e); 
     } 
    } 
} 

這也給了我,當我跑我的Java錯誤測試程序。它指出:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 

我在這裏做什麼完全喪失,我似乎無法建立在我的Java程序中的任何工作數據庫連接,我不知道我會需要些什麼在我的系統上或使用我的代碼進行更改以使其工作。 任何幫助將是偉大的!

+0

你能有一個非常簡單的程序,只需連接複製呢?只是爲了確認這個程序的其他部分不是問題?這裏有一個非常簡單的JDBC程序,您可以在這裏測試:http://support.microsoft.com/kb/313100 –

回答

0

我看到同一臺機器上的SQL Server。

我想你需要檢查SQL Server配置管理器,如果你已經啓用了通過TCP/IP的訪問,因爲SSMS可以使用本地(非TCP/IP)協議。

見的TechNet:http://technet.microsoft.com/en-us/library/ms187892(v=sql.105).aspx

+0

我之前已經學習了這個教程,並且確保在我的數據庫上啓用了TCP/IP,發佈默認爲1433,我的Java會嘗試使用這些設置。它仍然不起作用,並且我收到與之前一樣的錯誤,聲明「Invalid argument:connect」 – user1405741