浏览 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用户登陆的方式,不能找到我们自己的数据库里的表。 以后多交流,也多跟大家学吧! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |