Eclipse下配置及使用Tomcat 6.0数据库连接池连接sqlserver2000

前提假设Eclipse已经设置成功,Tomcat插件也设置成功。

1.由于tomcat6运行web应用时是在eclipse的workspace下建立一个server工程,而不是把web工程拷贝到tomcat路径下运行,所以在eclipse运行tomcat、使用它的连接池需要更改的是eclipse的workspace下server工程里面的server.xml配置,将来发布后再更改tomcat安装路径下conf下的server.xml。
在server.xml的host下加入:
<Context docBase="MyStruts" path="/MyStruts" reloadable="true">
<
Resource  name ="jdbc/DBUtil"  auth ="Container"  type ="javax.sql.DataSource"
               maxActive
="100"  maxIdle ="30"  maxWait ="10000"
               username
="sa"  password ="1234"  driverClassName ="com.microsoft.jdbc.sqlserver.SQLServerDriver"
               url
="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JiLv"   />
</Context>
其中,DBUtil任意,将来和下一步的web.xml里名字对应即可,url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JiLv"按情况填写。
   此步骤可以用如下方法替代,在web工程的webcontent/web-inf目录下建立context.xml文件,这样避免两次去更改server.xml配置,也可使不同工程使用不同context配置,这是tomcat6提倡的方法,内容如下:
< Context  docBase ="MyStruts"  path ="/MyStruts"  reloadable ="true" >

< WatchedResource > WEB-INF/web.xml </ WatchedResource >

< Resource  name ="jdbc/DBUtil"  auth ="Container"  type ="javax.sql.DataSource"
               maxActive
="100"  maxIdle ="30"  maxWait ="10000"
               username
="sa"  password ="1234"  driverClassName ="com.microsoft.jdbc.sqlserver.SQLServerDriver"
               url
="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JiLv"   />
</ Context >

2.在webapps/项目名/WEB-INF中的web.xml中之前增加以下配置:
< resource-ref >
        
< description > SQL Server Datasource </ description >
        
< res-ref-name > jdbc/DBUtil </ res-ref-name >
        
< res-type > javax.sql.DataSource </ res-type >
        
< res-auth > Container </ res-auth >
</ resource-ref >

3.把以下几个.jar文件复制到tomcat安装目录下的lib文件夹中
      commons-collections-3.1.jar
      commons-dbcp-1.2.1.jar
      commons-pool-1.2.jar
      msutil.jar
      msbase.jar
      mssqlserver.jar

4.关键一步。确认sqlserver2000可以远程连接,这除了开放1433端口外还要,升级数据库到sp3或者sp4,否则连接会发出SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误。

5.编写java类,用于返回connection对象。
package  com.lyb;

import  java.sql.Connection;

import  javax.naming.Context;
import  javax.naming.InitialContext;
import  javax.sql.DataSource;

public   class  DBUtil {

    
public   static  Connection getConnection() {

        
try  {
            Context initContext 
=   new  InitialContext();
            
if  (initContext  ==   null )
                
throw   new  Exception( " No Context " );
            Context envContext 
=  (Context) initContext.lookup( " java:/comp/env " );
            DataSource ds 
=  (DataSource) envContext.lookup( " jdbc/DBUtil " );
            
if  (ds  !=   null ) {
                Connection conn 
=  ds.getConnection();
                
if  (conn  !=   null ) {
                    
return  conn;
                }
            }
        } 
catch  (Exception e) {

            e.printStackTrace();
        }
        
return   null ;
    }
}

6.测试。
jsp文件内容:(注意不能用main函数测试,这样就脱离了Tomcat环境,只是一个java 应用,不可能使用tomcat连接池方法)
<% @   page contentType = " text/html;charset=gb2312 " %>
<% @   page import = " java.sql.* " %>
<% @   page import = " javax.sql.* " %>
<% @   page import = " javax.naming.* " %>
<% @   page import = " com.lyb.* " %>

< HTML >
< HEAD >
< TITLE > JSP测试页面 </ TITLE >
</ HEAD >
< BODY >
<%
    Connection conn 
=  DBUtil.getConnection();
    Statement st 
=  conn.createStatement();
    
String  sql  =   " select   *   from   goods " ;
    ResultSet rs 
=  st.executeQuery(sql);
    
while  (rs.next()) {
%>
第一个字段内容为:
<% = rs.getString( 1 ) %>
第二个字段内容为:
<% = rs.getString( 2 ) %>
< br >
<%
    }
%>
<%
    out.print(
" 使用jdbc驱动操作数据库操作成功 " );
%>
<%
    rs.close();
    st.close();
    conn.close();
%>
</ BODY >
</ HTML >

6.运行结果。


转载于:https://www.cnblogs.com/Aimd/archive/2007/11/24/971436.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值