首页  ·  知识 ·  编程语言
JSP连接SQLServer2000的问题总结
佚名  本站原创  Java  编辑:dezai  图片来源:网络
1、下载SQL Server 2000 driver for JDBC该驱动截止目前有四个版本,建议下载最新的SP3版。 

1、下载SQL Server 2000 driver for JDBC
     该驱动截止目前有四个版本,建议下载最新的SP3版。
     该驱动安装成功后,请将安装目录中lib目录下的三个.jar文件的路径加到CLASSPATH中;比如你的SQL Server 2000 driver for JDBC 安装载的D:/SQLJdbc下,那么在CLASSPATH中添加的是;D:/SQLJdbc/lib/msutil.jar;D:/SQLJdbc/lib/mssqlserver.jar;D:/SQLJdbc/lib/msbase.jar;

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

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

5、代码实例

<%@ page import="java.sql.*"%>
<%

       String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
       String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=mydb";
       String userName = "user";
       String userPwd = "userpassword";

       String sqlquery="SELECT * FROM mytable"; //mytable是你库里面的某个表

       String sqlUpdate="INSERT INTO mytable (field1,field2,field2) VALUES("value1","value2","value3")";//field1,field2,field3是表mytable中的字段,value1,value2,value3分别是这些字段对应的值。
   try {
           Class.forName(driverName);
           Connection con= DriverManager.getConnection(dbURL, userName, userPwd);
           System.out.println("Connection Successful!");

           Statement stm=con.createStatement();

           stm.executeUpdate(sqlUpdate);

           ResultSet rs=stm.executeQuery(sqlquery);


       }
       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中。

如果提示"java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'mytable' 无效。" 出现这个问题是因为登录用户的问题,一般SQL server2000中的默认用户sa,可以正常的登录数据库,但是在对数据库中表操作时可能由于未分配权限等问题,会出现上述对象名'mytable'无效的问题。解决的办法是在"企业管理器中"--选择要操作的数据库,本例中为mydb,为这个数据库新增加一个用户,比如为user,要注意在新增用户时,在身份验证中一定要选择SQL server身份验证,并设置密码,密码比如为userpassword,默认数据库设置为mydb。这样更改上面的代码,将用户名密码处修改为新建的用户名和密码,测试代码一般能解决这个问题。

   如果提示java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL. 一般是url字符串的问题,仔细检查url字符串是否正确,特别是大小写。

本文作者:佚名 来源:本站原创
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读