java sql server连接字符串_关于Java:SQL Server的等效jdbc连接字符串
我目前正在使用以下連接字符串連接到數據庫(該數據庫與ServerIP在同一服務器上):
String constr ="Data Source=ServerIP,1433;Network Library=DBMSSOCN;Initial
Catalog=dbName;User ID=dbUserID;Password=dbUserPassword";
在asp.net中使用時,此連接良好。 (我已經從sql server management studio中手動創建了dbUserId并將其分配給dbUserPassword。dbUserId是數據庫" dbName"的所有者)
我在另一臺PC上有一個Java Swing應用程序,需要連接到同一數據庫。我正在使用駐留在C:中的sqljdbc4.jar。我的類路徑具有條目"。; C: sqljdbc4.jar"。為了完成連接,我使用以下代碼行:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url ="jdbc:sqlserver://ServerIP:1433;databaseName=dbName";
String user ="dbUserID";
String pass ="dbUserPassword";
Connection connection = DriverManager.getConnection(url, user, pass);
但是,我在"連接連接= DriverManager.getConnection(url,user,pass);"行上遇到異常。 :"與主機" ServerIP"的TCP / IP連接,端口1433失敗。錯誤:"連接超時。驗證連接屬性。確保主機上正在運行SQL Server實例并在端口上接受TCP / IP連接。確保與端口的TCP連接沒有被防火墻阻止。"
我檢查了Windows防火墻是否已關閉(并且還為家庭和公共網絡上的MSSQLSERVER端口1433 tcp添加了例外)。從sql服務器管理工??作室,我已經為sql服務器和sql server express啟用了TCP / IP。
誰能指出我的連接字符串或sql server連接設置可能有問題嗎?
您可以從運行Swing應用程序的位置ping ServerIP嗎?
ping IP并檢查POrt是否打開,可能正在使用某些網絡嗅探器
@maba我能夠ping通IP。 實際上是從運行Java應用程序的計算機上遠程使用服務器。 另外,netstat -aon給出以下行:TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING 5584
感到困惑...是ServerIP的名稱,還是只是您在問題中寫的而不是x.x.x.x的東西?
@maba是我寫的東西,而不是x.x.x.x
@maba我很困惑,因為我強迫asp.net使用tcp連接到自身,并且成功完成了連接。 另一方面,java應用程序將無法連接。
終于找到了根本原因。 問題不在于Java連接字符串,IP地址或端口。 就是在網絡上。 服務器IP和運行Java應用程序的計算機的IP位于不同的子網中。 因此,這兩個子網之間的切換機制阻塞了端口1433上的流量。因此,我在運行Java應用程序的PC上遇到了超時問題,而asp.net Web應用程序工作得很好(流量沒有通過交換機與Internet互連)。 子網絡)
我希望這對將來嘗試實現類似目標的人有用。
您為上述問題做了什么? 即。 哪里有什么變化?
@DPM我只是確保Java應用程序和sql數據庫服務器位于與上述相同子網中的計算機上。 我可以知道您還需要什么其他信息嗎?
@Karan我想我也面臨著同樣的問題。 我的sql服務器的主機名為* .uss.net,而linux服務器的主機名為* .privatecloud.local。 這些在不同的子網中嗎? 你能幫助我嗎?
您是否嘗試過jtds.jar。 我正在使用以下它正在為我工作。
public static String jdbc_url="jdbc:jtds:sqlserver://yourServerIp:1433/dbName";
public static String jdbc_username="sa";
public static ?String jdbc_password="prabhakar";
public static String jdbc_driver="net.sourceforge.jtds.jdbc.Driver";
Class.forName(jdbc_driver);
Connection cn=null;
cn=DriverManager.getConnection(jdbc_url, jdbc_username,jdbc_password);
虐待嘗試一下。 謝謝。
總結
以上是生活随笔為你收集整理的java sql server连接字符串_关于Java:SQL Server的等效jdbc连接字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java项目中外接扫描仪无法使用_jav
- 下一篇: java 全半角转换_Java 全半角转