当程序运行到Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JspDb", "sa", "sasa");
时提示错误如下:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at heyong.com.DbHelper.getConnection(DbHelper.java:18)
at heyong.com.Test.main(Test.java:13)
java.lang.NullPointerException
at heyong.com.Test.main(Test.java:18)

解决方案 »

  1.   

    引用地址:http://blog.csdn.net/stephenewong/archive/2007/03/21/1535819.aspx
        调试过程中注意重启sql服务,尤其是测试防火墙因素时(吃了点亏,哈哈)
    如运行程序时出现 "Error establishing socket" 错误,则应进行如下调试:
    1 检查SQL SERVER 是否允许远程访问.具体步骤:1)打开"企业管理器",打开控制台根目录>SQL Server 组>数据库
    2)在相应"数据库"上单击右键,选择"属性"
    3)选择"连接"选项卡,检查"远程服务器连接"下,RPC服务是否选择.2 使用telnet IP地址 1433,系统是否提示连接出错,如系统提示出错
    检查是否防火墙屏蔽了SQL SERVER 或 java IDE 的网络访问端口
    如果是,关闭防火墙,重新启动SQL SERVER和java IDE,进行测试,
    如果系统仍提示上述错误,尝试下列步骤3 检查SQL SERVER 端口号及是否启用了TCP/IP协议,具体步骤:1)打开"企业管理器",打开控制台根目录>SQL Server 组>数据库
    2)在相应"数据库"上单击右键,选择"属性"
    3)选择"常规"选项卡,点击"网络配置",如启用的协议中无"TCP/IP协议"将其加入
    4)选择"TCP/IP协议",点击"属性",检查其端口号是否为1433
    5)如端口号为1433将其修改为其它端口号,修改jdbc连接语句,将端口号同样改为新启用的端口号,如jdbc:microsoft:sqlserver://server_name:1400(假设新端口号为 1400) 
      

  2.   

    谢谢 这个问题解决了,但是新问题又来了Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JspDb", "sa", "sasa");
    提示
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'sa' 登录失败。
    我用ms sql2005用sa sasa就能登陆JspDb
      

  3.   

    java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JspDb
    at java.sql.DriverManager.getConnection(DriverManager.java:602)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at heyong.com.DbHelper.getConnection(DbHelper.java:18)
    at heyong.com.Test.main(Test.java:13)
    java.lang.NullPointerException
    at heyong.com.Test.main(Test.java:18)
      

  4.   

    这个是我刚换的2005驱动提示java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JspDb
    at java.sql.DriverManager.getConnection(DriverManager.java:602)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at heyong.com.DbHelper.getConnection(DbHelper.java:18)
    at heyong.com.Test.main(Test.java:13)
    java.lang.NullPointerException
    at heyong.com.Test.main(Test.java:18)
    2000驱动提示:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'sa' 登录失败。
    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
    at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
    at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at heyong.com.DbHelper.getConnection(DbHelper.java:18)
    at heyong.com.Test.main(Test.java:13)
    java.lang.NullPointerException
    at heyong.com.Test.main(Test.java:18)
      

  5.   

    你用sql 2000的就要加2000的jar 2005的和2000的jar包是不同的
      

  6.   

    at heyong.com.Test.main(Test.java:13) 
    13行是什么?
      

  7.   

    不知道为什么2000驱动(mssqlserver2.jar)总是提示sa登陆失败
                2005驱动(sqljdbc.jar)提示No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JspDb 
      

  8.   

    Test.java
    package heyong.com;import java.sql.*;public class Test {
    public static void main(String[] args) {

    try {
    Connection con = DbHelper.getConnection(); String sql = "select * from FirstLevelTitle";

    Statement s = con.createStatement();
    ResultSet rs = s.executeQuery(sql);
    while (rs.next()) {
    System.out.println(rs.getInt("id"));
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }}DbHelper.java
    package heyong.com;import java.sql.*;public class DbHelper {
    private static final String conString = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; private static final String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JspDb"; private static final String name = "sa"; private static final String pwd = "sasa"; public static Connection getConnection() {
    Connection con = null;
    try {
    Class.forName(conString);
    System.out.println("Connection Successful!");
    con = DriverManager.getConnection(url, name, pwd); } catch (Exception e) {
    e.printStackTrace();
    }
    return con; }
    }
      

  9.   

    把连接字符串改为:
            jdbc:sqlserver://localhost:1433;DatabaseName=JspDb 
    试一下