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);

虐待尝试一下。 谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值