最近两天一个同学说连接sql server 2000总是不成功,不懂为什么,上网查了很久也没找到实质性的答案。于是我就接手,想挑战一下这“巨大的挑战”。可很不幸,我搞了一天晚上都没成功。刚开始的时候是没有到类,后来发现是没导入包。但问题还是没有解决,出现的。[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket 错误,上网找了很久也没找到答案,后来才发现是没有打补丁。以下就连接sql总结如下几点注意的地方
1、装sql server 200的时候尽量不要选择系统认证,要选择混合认证,也就是说用sa这个用户!
2、将数据源驱动msbase,mssqlserver,msutil这三个包导入你的工程中!
3、可以在命令行中打“ telnet 1433 ”命令查看你的sql server 端口是否已经打开了!
4、检查你的SQL有没有打补丁,没有的话要打上补丁,检查的方法是在查询分析器中运行:
“select @@version ”。如果出来的版本号是8.00.760以下,则表明你未安装sp3以上的补丁!
5、jdbc的版本一定要和sql server 的版本一致。如果是sp3的sql就要sq3的包,如果是sp4的sql就要sp4的包!
6、打补丁的时候还要注意,你下补丁那个文件大概是60多M的EXE文件,你双击运行的时候其实不是安装补丁,只 是解压到指定的文件夹中而已,要真正地安装还要到那个目录下运行 setup 这个文件(这一个是最值得注意的)!
7、有时候防火墙也可能拦截的,所以不行的时候可以尝试关掉防火墙!
以上就是我的总结,如果上面的工作你都做了还是不行的话,我就不懂了,另找高手!现附人本人连接sql的主要代码:
String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydata";
String user ="sa";
String password ="123456";
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try{
Class.forName(driver);
}catch(ClassNotFoundException e){
e.printStackTrace();
}
try{
conn = DriverManager.getConnection(url,user,password);
stmt = conn.createStatement();
}catch(SQLException e){
System.out.println(e.toString());
}
System.out.println("数据库操作成功,恭喜你");