JAVA连接SQLServer2000数据库

时间:2021-03-22 07:04:36

1、下载SQL Server 2000 driver for JDBC

  微软的网站已经停止更新,大家可以上我的网盘上下载 :http://yunpan.cn/QXbAQdjQxDNfn

  该驱动截止目前有四个版本,建议下载最新的SP3版。

  该驱动安装成功后,请将安装目录下的lib目录下的三个.jar文件加到CLASSPATH中;如果你使用的是JBuilder或Eclipse,将这三个文件根据IDE的提示加到工程中也可。

Windows Example

CLASSPATH=.;c:\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;c:\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;c:\Microsoft SQL Server 2000 Driver for JDBC
\lib\mssqlserver.jar

UNIX Example

CLASSPATH=.;/home/user1/mssqlserver2000jdbc/lib/msbase.jar;/home/user1/mssqlserver2000jdbc/lib/msutil.jar;/home/user1/mssqlserver2000jdbc/lib/mssqlserver.jar
       但是,我配置好环境变量以后依然是不好使,不知道具体的原因。如果您也遇到这个问题,可以我的做法: 直接把这三个文件复制到C:\ProgramFiles\Java\jdk1.5.0_09\jre\lib\ext。注意:是放到jdk里而不是jre里

2、升级你的SQL Server 2000,为其打上最新的补丁。

  这一步可能不是必需的,因操作系统环境而定,在不打补丁的情况,有时可以正常连接,有时却不能,所以建议还是安装最新的SQL Server 2000补丁(SP4)和JDBC驱动(SP3)。如果你的程序在运行时提示:Error establishing socket,一般情况下,打上SQL Server 2000的补丁就可解决。

  下载地址:http://yunpan.cn/QXbALVUwgCsLB

3、驱动的加载方法

  在建立连接之前,要先加载SQL Server 2000 JDBC的驱动,代码形式如下:

  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

  在此注意,forName方法的参数字符串必须完全相同于以上内容,大小写是区分的,其实这个串就是驱动类的完整名称:包名+类名。

4、获得一个连接

  在操作数据库之前,要先获得与数据库的一个连接,使用如下代码格式:

  DriverManager.getConnection(连接字符串, 登录用户名, 登录密码);
  例:
  DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs", "sa", "");

  在此处关键的是连接字符串的内容,localhost部分即服务器的名字,可以更改;1433部分为SQL Server使用的端口号,根据实际情况修改即可;DatabaseName即为要连接的数据库的名字,在此注意DatabaseName之前的是分号,而不是冒号。

示例代码:

// 导入Java SQL包,连接数据库必需;
import java.sql.*;

public class TestDB {
public static void main(String[] args) {
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs";
String userName = "sa";
String userPwd = "";
Connection dbConn

try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!");
}
Catch (Exception e) {
e.printStackTrace();
}
}
}

6、可能出现的问题
  如果以上的代码运行后,输出"Connection Successful!",那就代表一切正常,连接数据库成功,你可以进行Statement、ResultSet的操作了;反之的话,一定是出现了相应的异常。
  如果提示错误"Error establishing socket",请根据之前的说明安装相应的SQL Server 2000补丁即可。
  如果提示"ClassNotFoundException",那一定是 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 该段代码拼写有误,或者是SQL Server 2000 Driver For JDBC Lib目录下的三个.jar文件未加入到CLASSPATH中。

  有问题,欢迎邮件讨论:qinpanke@gmail.com

  阿科

  2013年8月31日于北京邮电大学新科研楼302室