论坛首页 入门技术论坛

JDBC driver连接SQL Server 2000数据库

浏览 6350 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-15  
(这是我在网上找的一篇,希望能对需要的人有所帮助)

连接前我所做的准备:
1、 到microsoft官方网站下载了Microsoft SQL Server 2000 Driver for JDBC驱动程序包,并安装配置环境变量,set classpath=.; C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar; C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar; C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar
2、 本人用的是tomcat5,我为了保险把上面的三个文件(msbase.jar, mssqlserver.jar, msutil.jar )拷到tomcat5\common\lib下面,重新启动tomcat5。


下面是我的详细操作步骤:
1, 在SQL Server2000里创建一个testDB的数据库
  Use master
  Go
  
  Create database testDB
  On
  (
     Name=test_data,
     Filename=’f:\sql2000\testDB\test_data.mdf’,
     Size=2,
     Maxsize=4,
     Filegrowth=20%
)
Log on
(
     Name=test_log,
     Filename=’f:\sql2000\testDB\test_log.ldf’,
     Size=1,
     Maxsize=2,
     Filegrowth=1
)
Go


//创建users表
Use testDB
Go

Create table users
(
     userID char(10)  primary key,
     username char(20)  not  null,
     age int,
email  char(18),
     address char(40)
)
Go

插入3条记录:
Insert  into  users   values(‘000001’,’为什么’,22,’twei@dfa .com’,’甘肃陇南市’)
Insert  into  users   values(‘000002’,’小二i’,22,’sadfjadf@163.com’,’北京’)
Insert  into  users   values(‘000056’,’往西’,22,’tafjsdfk@281.com’,’深圳’)

Select  *  from  users

2、 创建一个jdbcDriver.JSP文件,如下:

<html>
<head>
      <title>利用JDBC Driver连接SQL Server 2000数据库</title>
</head>
<%@  page   contentType=”text/html;charset=GB2312”  %>
<%@  page   language=”java”   import=” java.sql.* ”  %>
   <center>
        <h1>利用JDBC Driver连接SQL Server 2000数据库</h1>
</center>
     <table>
             <tr>
                   <td>用户ID</td>
                   <td>姓名</td>
                   <td>年龄</td>
                   <td>邮件</td>
                   <td>地址</td>
</tr>
</table>
<% 
    /*加载JDBC Driver*/
    java.lang.Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
   
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testDB";
    String user="sa";
    String password="pass";
    Connection con=DriverManager.getConnection(url,user,password);
    /*创建语句对象*/
    Statement stmt=con.createStatement();                   
    ResultSet rs=stmt.executeQuery("select * from users");
    while(rs.next())
   {
  %>
   <tr>
      <td><%= rs.getString("userID") %></td>
      <td><%= rs.getString("username") %></td>
      <td><%= rs.getString("age") %></td>
      <td><%= rs.getString("email") %></td>
      <td><%= rs.getString("address") %></td>
   </tr>
  <% }
    rs.close();
    con.close();  
%>
</html>
好了,现在就OK了!?
   启动tomcat5,sql server2000服务器,在地址栏输入http:\\localhost:8080\jdbcDriver.jsp回车。
现在会有这样的错误产生:
message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException:   Not suitable driver.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:150)
 
没有合适的驱动器。

3、经过询问和查资料,看帖子。知道原来这个问题可能出在SQL Server 2000没有安装升级补丁。
所以,到微软的官方网站,直接下载个chs_sql2ksp3.exe.安装将SQL Server2000升级为sp3后,再运行看看;
  结果还是出错,不能通过。提示错误信息如下:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
hing socket.
        at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
)
        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)

        at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou
rce)
        at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
ource)

4、在一个帖子里看到了,原来出现上边错误的主要原因是默认的数据库服务器端口 1433没有打开,无法直接连接。

我们将 SQL Server 2000升级到SP3后,再次启动tomcat5,启动SQL Server 2000服务器 ,发现有如下提示信息:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对
象名 'users' 无效。
        at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
)
        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown
Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown
Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(
Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Sour
ce)

在这里,其实我们可以发现用户SA已经登陆连接上数据库了,要不你把登陆密码设为空或者写个错误的密码,信息将提示 sa登陆失败。密码有错的提示。
  解决这个的办法是我们进入企业管理器,找到 testDB数据库,选“用户”,单击右键,“ 新建用户”----》选择“sql身份验证”,并对新建的用户分配相应的权限,还要把我们自己建的testDB选为默认数据库,最后再把用户名和密码改一下,重新打开就可以了。

总结:
   经过这个SQL Server 2000的连接,一定要注意,这里我们要选择使用SQL身份验证方式,还有那个1433端口的问题,其次就是以系统sa用户登陆的方式,不能找到我们自己的数据库里的表。
以后多交流,也多跟大家学吧!

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics