簡體   English   中英

使用Java連接到SQL Server時出現問題

[英]Trouble connecting to SQL server using Java

這是我作為代碼的一部分編寫的:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String host1 = "<URL/Connection path string>";
String uname1= "<User name>";
String pwd1 = "<Password>";
Connection con1 =DriverManager.getConnection(host1,uname1,pwd1);
Statement stmt1 = con1.createStatement();
ResultSet rs = stmt1.executeQuery("<Query>");

我使用了以下jar文件: jtds-1.3.0,sqljdbc-4.1.5605,sqljdbc4-4.0

運行代碼時,出現以下錯誤:

Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The connection to the host <host-name>, named instance <instance-name> failed. Error: "java.net.SocketTimeoutException: Receive timed out". Verify the server and instance names and check that no firewall is blocking UDP traffic to port 1434.  For SQL Server 2005 or later, verify that the SQL Server Browser Service is running on the host.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(SQLServerConnection.java:3589)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.primaryPermissionCheck(SQLServerConnection.java:1225)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:972)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at first_doc.main(first_doc.java:28)

據我所知,沒有防火牆可以阻止流量。

另外,我是否需要在連接URL中添加端口號?

編輯:我使用SQL Server版本2008

我在配置管理器中找不到SQLEXPRESS的協議

在此處輸入圖片說明

這些是您需要執行的步驟。 如果您已經這樣做,請再次檢查。

  • 從此處下載最新的MSSQL JDBC驅動程序: http : //msdn.microsoft.com/zh-cn/sqlserver/aa937724.aspx

  • 在我的項目中引用了2個JAR文件:

    sqljdbc.jar和sqljdbc4.jar

    (我不確定是否同時需要以上兩個條件。)

  • 確保SQL Server Browser Windows服務正在運行

  • 打開SQL Server配置管理器,然后轉到“ SQL Server網絡配置”下的“ SQLEXPRESS協議”。 右鍵單擊“ TCP / IP”,然后選擇“屬性”。

    設置啟用=是。

  • 在那里,單擊“ IP地址”選項卡,然后找到“全部IP”部分。

    將TCP端口設置為1433。

  • sqljdbc_auth.dll添加到您的PATH環境變量中。 就我而言:

     D:\\Java\\sqljdbc_4.0\\enu\\auth\\x64 
  • sqljdbc_auth.dll復制到您的JDK目錄。 就我而言:

     C:\\Program Files\\Java\\jdk1.7.0_04\\bin 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM