java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis


  java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket 
一、准备环境

   Windows XP+JDK5.0+Microsoft SQL Server 2000个人版+JCreator(或Eclipse)

下载数据库驱动程序SQL Server 2000 Driver for JDBC Service Pack 3.exe
   安装完毕后 在C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib
   目录下有三个包msbase.jar mssqlserver.jar msutil.jar
   1、在命令行下编译运行,配置环境变量 将这三个包的路径加入CLASSPATH中
   2、在JCreator中 配置 选项 JDK配置文件 编辑 添加存档路径 添加三个包
   3、在Eclipse此中   选择项目的构建路径——库—— 添加外部JAR 将这三个添加进去

二、出现的问题及解决办法
1、是不是出现了Error establishing socket之类的错误 呵呵
这是因为连接数据库的1433端口没打开 我们必须要下载SP3的补丁
http://download.microsoft.com/download/d/d/e/dde427eb-0296-4eac-a47c-d11a66b03816/chs_sql2ksp3.exe
SP4行不呢? 照理说SP4应该包括SP3 我也是这样想 下了个SP4 70多M    装好后
用NETSTAT -A -N 没发现TCP 1433被监听 UDP 1434没被监听 火啊   在网上找啊找
发现有位仁兄也遇见此类问题 问题就出在SP4补丁上 一定要打上SP3补丁才管用 
微软官方有下 有三个文件 一定要下这个chs_sql2ksp3.exe 下别的也不行 因为我首先就下了个chs_sql2kdesksp3.exe 他妈的不知道是什么东西 也不能打开1433 装好chs_sql2ksp3.exe后重启
NETSTAT -A -N测试若发现1433被监听 TELNET 127.0.0.1 1433 能连接 那么恭喜你 软件环境可以准备好了
2、当然还有其他的问题比如防火墙设置比如SQL SERVER里的网络配置(TCP/IP默认端口是否是1433)不过一般在一般情况还是不需修改。


三、实例说明
下面是一个实例:
import java.sql.*;
public class ConSqlserver{ 
     Connection con;
     Statement st;
     ResultSet rs;  
     public ConSqlserver(){  
      try{    
   String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
   String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
        Class.forName(driver);
        con=DriverManager.getConnection(url,"SA","密码");
                System.out.println("连接成功!");
                con.close();           
          }catch(Exception e){
                e.printStackTrace();
          }
     }

     public static void main(String args[]){    
       
   new ConSqlserver();  
     }

}

四、补充
      写连接代码时需要注意2000和2005的不同:   
   1、连接SqlServer2000   
       Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();   
       URL    =    "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tempdb";   
   2、连接SqlServer2005   
       Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();   
       URL    =    "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";  

你可能感兴趣的:(java,sql,SQL Server,jdbc,Microsoft)