转自:
1.
准备工作
首先,操作系统中安装好SQL Server 2000/2005,如果系统中都装有2000和2005版,记得停用一个,只开一个行了。
然后,到微软网站下载,也可以使用这个地址。解压sqljdbc_1.1.1501.101_chs.exe,把sqljdbc_1.1复制到%ProgramFiles%(如果系统在C盘则为C:\Program Files)。设置 ClasspathJDBC 驱动程序并未包含在 Java SDK 中。因此,如果要使用该驱动程序,必须将 classpath 设置为包含 sqljdbc.jar 文件。如果 classpath 缺少 sqljdbc.jar 项,应用程序将引发“找不到类”的常见异常。sqljdbc.jar 文件的安装位置如下:
<安装目录>\sqljdbc_<版本>\<语言>\sqljdbc.jar
下面是用于 Windows 应用程序的 CLASSPATH 语句实例:
CLASSPATH =.;
%ProgramFiles%\sqljdbc_1.1\chs\sqljdbc.jar
下面是用于 Unix/Linux 应用程序的 CLASSPATH 语句实例:
CLASSPATH =.:/home/usr1/mssqlserver2005jdbc/Driver/sqljdbc_1.1/chs/sqljdbc.jar
C:\Temp
,更改 classpath,然后测试这样是否解决了问题。 直接在命令提示符运行的应用程序
在操作系统中配置 classpath。将 sqljdbc.jar 追加到系统的 classpath 中。或者,使用 java -classpath
选项,可以在运行此应用程序的 Java 命令行上指定 classpath。
\sqljdbc_1.1\chs\sqljdbc.jar3、在Test项目的“JRE 系统库”中可以看见
sqljdbc.jar,如果没有可以
右键单击项目Test→“构建路径”→“配置构建路径...”→“Java 构建路径”→“库”→“添加外部 JAR...”,选择%ProgramFiles%\sqljdbc_1.1\chs\sqljdbc.jar4、
编写Java代码,如下:import java.sql.*; public class Test {
public static void main(String[] srg) { String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载JDBC驱动 String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=test"; //连接服务器和数据库test String userName = "sa"; //默认用户名 String userPwd = "123456"; //密码 Connection dbConn;try {
Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); System.out.println("Connection Successful!"); //如果连接成功 控制台输出Connection Successful! } catch (Exception e) { e.printStackTrace(); }}}
注: 1、因为SQL Express这个版本的服务器默认是禁用的并且端口号没有配置,所以要进行重新设置
2、如果你以前用Java连接SQL Server 2000的话就要注意了:
在SQL Server 2000 中加载驱动和URL路径的语句是
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sample";而SQL Server 2005 中加载驱动和URL的语句则为
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample";如果写法错误将会找不到驱动。
2.JSP连接SQL2000的时候出现问题,SP4补丁已经打过了,端口也开启了.出现如下问题:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'sf_testpaper' 无效。 at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)....
解决方法:
将DbConnection dbConnection=new DbConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=abc");
改为:DbConnection dbConnection=new DbConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=abc");
不知道莫名其妙的不认识localhost.弄了一天了......
——————————————————————————————————————————————————————
PS:通过各种尝试和摸索,发现上面文章写的做法可以改进:
环境:JDK1.6.0.30+TomCat6.0+MyEclipse8.5+sqljdbc_3.0.1301.101_chs
做法:
【Classpath不用再环境变量里配置;】
【Eclipse中,选择“窗口”→“首选项...”→“Java”→“已安装的 JRE,这个也是不需要的;】
关于JDBC文件,,然后解压把sqljdbc4.jar拷贝到WEB_INF/lib下,然后刷新一下项目即可。
至于用sqljdbc4.jar与用sqljdbc.jar的区别,就是上文转载提到的“驱动URL路径”的区别。sqljdbc4.jar对应2005数据库写法,sqljdbc.jar的对应2000数据库的写法。但是sqljdbc4.jar不必须连接2005数据库,连接2000的也是可以的。
另外最后需要注意的是,SQL2000必须打上SP4补丁。不然是无法连接成功的。
参考DEMO代码: