连接前所做的准备:
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、为了保险把上面的三个文件(msbase.jar, mssqlserver.jar, msutil.jar )拷到tomcat6 /lib下面,重新启动tomcat6。
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、为了保险把上面的三个文件(msbase.jar, mssqlserver.jar, msutil.jar )拷到tomcat6 /lib下面,重新启动tomcat6。
下面是详细操作步骤:
1, 在SQL Server2000里创建一个testDB的数据库
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
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
(
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’,’张三’,24,’twei@dfa .com’,’甘肃陇南市’)
Insert into users values(‘000002’,’李四’,20,’sadfjadf@163.com’,’北京’)
Insert into users values(‘000056’,’往西’,22,’tafjsdfk@281.com’,’深圳’)
Insert into users values(‘000001’,’张三’,24,’twei@dfa .com’,’甘肃陇南市’)
Insert into users values(‘000002’,’李四’,20,’sadfjadf@163.com’,’北京’)
Insert into users values(‘000056’,’往西’,22,’tafjsdfk@281.com’,’深圳’)
2、 创建一个jdbcDriver.JSP文件,如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>利用JDBC Driver连接SQL Server 2000数据库</title>
</head>
<body>
<center>
<h1>利用JDBC Driver连接SQL Server 2000数据库</h1>
</center>
<%
ResultSet rs=null;
/*加载JDBC Driver*/
try{
java.lang.Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
}catch(ClassNotFoundException e){
out.println(e.getMessage());
}
try{
String url="jdbc:microsoft:sqlserver://XD:1433;DatabaseName=testDB";
String user="sa";
String password="sa";
Connection con=DriverManager.getConnection(url,user,password);
Statement stmt=con.createStatement();
rs=stmt.executeQuery("select * from users");
out.print("<table border=3 bordercolor=orange>");
out.print("<tr bgcolor=orange align=middle><td><font color=white><b>用户ID</b></font></td>");
out.print("<td><font color=white><b>姓名</b></font></td>");
out.print("<td><font color=white><b>年龄</b></font></td>");
out.print("<td><font color=white><b>邮件</b></font></td>");
out.print("<td><font color=white><b>地址</b></font></td>");
out.print("</tr>");
while(rs.next())
{
out.print("<tr align=middle><td>"+rs.getString(1)+"</td>");
out.print("<td>"+rs.getString(2)+"</td>");
out.print("<td>"+rs.getString(3)+"</td>");
out.print("<td>"+rs.getString(4)+"</td>");
out.print("<td>"+rs.getString(5)+"</td>");
out.print("</tr>");
}
out.print("</table>");
}catch(SQLException e){out.print(e.getMessage());}
%>
<%
out.print("dddd");
%>
</body>
</html>
启动tomcat6,sql server2000服务器,在地址栏输入http://localhost:8080/jdbcDriver.jsp回车。
现在会有这样的错误产生:
message
现在会有这样的错误产生:
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)
没有合适的驱动器。
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)
所以,到微软的官方网站,直接下载个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)
rce)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
ource)
4、上边错误的主要原因是默认的数据库服务器端口 1433没有打开,无法直接连接。
我们将 SQL Server 2000升级到SP3后,再次启动tomcat6,启动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)
象名 '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选为默认数据库,最后再把用户名和密码改一下,重新打开就可以了。
解决这个的办法是进入企业管理器,找到 testDB数据库,选“用户”,单击右键,“ 新建用户”----》选择“sql身份验证”,并对新建的用户分配相应的权限,还要把我们自己建的testDB选为默认数据库,最后再把用户名和密码改一下,重新打开就可以了。
总结:
经过这个SQL Server 2000的连接,一定要注意,这里我们要选择使用SQL身份验证方式,还有那个1433端口的问题,其次就是以系统sa用户登陆的方式,不能找到我们自己的数据库里的表。
经过这个SQL Server 2000的连接,一定要注意,这里我们要选择使用SQL身份验证方式,还有那个1433端口的问题,其次就是以系统sa用户登陆的方式,不能找到我们自己的数据库里的表。