X

java连接SqlServer 数据库

前些天终于把聊天室弄的差不多了,要放服务器上测试,接着就发现下面的错误:
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格式不同其他都一样的.

This post was last modified on 2019 年 03 月 04 日 01:08

This website uses cookies.