JSP中的数据库的连接

 
连接前所做的准备:
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

//创建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’,’张三’,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
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后,再次启动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)
发现用户SA已经登陆连接上数据库了,要不你把登陆密码设为空或者写个错误的密码,信息将提示 sa登陆失败。密码有错的提示。
   解决这个的办法是进入企业管理器,找到 testDB数据库,选“用户”,单击右键,“ 新建用户”----》选择“sql身份验证”,并对新建的用户分配相应的权限,还要把我们自己建的testDB选为默认数据库,最后再把用户名和密码改一下,重新打开就可以了。
总结:
    经过这个SQL Server 2000的连接,一定要注意,这里我们要选择使用SQL身份验证方式,还有那个1433端口的问题,其次就是以系统sa用户登陆的方式,不能找到我们自己的数据库里的表。
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值