前些天终于把聊天室弄的差不多了,要放服务器上测试,接着就发现下面的错误:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. 现在想到的就是是否有打sp3补丁
果不其然,真的没打,赶紧下载并安装,不幸的是不能安装补丁的时候出错,总是打不来,sp4也不行。
然后换 另一个驱动依然是报错:
java.sql.SQLException: Network error IOException: Connection refused: connect
就想卸掉SqlServer重新装下,只是里面的数据库很多,用户很很多,万一弄不好就惨了。
四处求医问药依旧无果,都是说升级sp3补丁,无奈升级不了,总是打一半就报错。
又一次登录到服务器,仔细对比服务器的SqlServer与我本机的各项参数,突然看到SqlServer用了代理,我本机没有,心想是不是因为用了代理的原因啊。
然后赶忙把本机的应用代理,重新启动SqlServer,耶,果真报错了:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
修改java里连接数据库的地址为代理地址,测试, OK,一切顺利的运行了,再也没有了讨厌的连接错误了,O(∩_∩)O哈哈~
所以,java连接数据库出现java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.并不一定非要打sp3补丁或许是其他一些什么原因所致。
比较常见的原因:数据库名,IP写错, 又或者是用了代理,然后陪着IP仍然用的 localhost 127.0.0.1
下面写下简单的SqlServer数据库的连接:
使用jtds驱动
try
{
String host = "localhost";
int port = 1433;
String dbName = "myDbName";
String userName = "myUserName";
String password = "myPassword";
Class.forName("net.sourceforge.jtds.jdbc.Driver");
String url = "jdbc:jtds:sqlserver://"+host +":"+port+"/"+dbName;
Connection conn = DriverManager.getConnection(url, userName, password);
System.out.println("连接成功!"+conn);
}catch(Exception e)
{
e.printStackTrace();
}
使用microsoft 驱动
try
{
String host = "localhost";
int port = 1433;
String dbName = "myDbName";
String userName = "myUserName";
String password = "myPassword";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://" + host +":" + port +";DatabaseName=" + dbName;
Connection conn = DriverManager.getConnection(url, userName, password);
System.out.println("连接成功!"+conn);
}catch(Exception e)
{
e.printStackTrace();
}
这两个驱动只有类名不和url格式不同其他都一样的.
» 本文链接地址:https://www.litefeel.com/java-connect-sqlserver/
» 订阅本站:www.litefeel.com/feed/
» Host on Linode VPS
This post was last modified on 2019 年 03 月 04 日 01:08