在tomcat 5中配置DBCP(Database Connection Pool)

在tomcat 5中配置DBCP(Database Connection Pool)

    偶也是JSP的一个初学者,前几天一直被DBCP在tomact 5中的配置问题搞得头都大了两号(注:如变身后的“白精精”)。经过看贴子、看文档,终于基本明白了一些,现将自己的一个例子与众多像偶一样的小菜鸟们分享,希望能让大家少在这配置方面“浪费”太多的时间,也希望我们这些小菜鸟能早是飞上“蓝天”。

首先,在Oracle中建立一个名为BOOK的Table,SQL如下:
create table BOOK(BOOK_CODE CHAR(5) NOT NULL,
    COST NUMBER(7,2));

插入几条记录:
insert into BOOK VALUES(B0020,13.50); 
insert into BOOK VALUES(B0220,12.00);
……

数库准备完毕!

偶的tomcat安装路径为D:/tomcat5,在D:/下的webapps目录下建立自己的web application目录。偶建的目录名为:myapps。然后在自己的目录中建立WEB-INF目录,建议从D:/tomcat5/webapps/jsp-examples/下将WEB-INF目录Copy过来,其中已经配置好了相关设置,特别是加入了jsp2.0这个新东东。现在的目录结构应该为:
D:/tomcat5
         |------ /webapps
             |------- /myapps
                     |------/WEB-INF

现在开始为DBCP做准备工作。将你想配置的database 的JDBC放到D:/tomcat5/common/lib下,注意一定要放”.jar”的文件,如是“.zip”的文件直接改为.jar即可。本例是用一个Oracle的jdbc,偶将classes111.zip更名为classes111.jar放到这里。

下面开始配置xml文件:
1.        对server.xml的配置:
用(你习惯的)文本编辑器打开D:/tomcat5/conf/server.xml,找到<Context path="" docBase="ROOT" debug="0">将它改为以下形式,并加入Oracle的设置信息。
 
< Context  path ="/myapps"  docBase ="myapps"  debug ="5"  reloadable ="true"  crossContext ="true" >
    
< Logger  className ="org.apache.catalina.logger.FileLogger"  prefix ="localhost_DBTest_log."  suffix =".txt"   timestamp ="true" />
    
<!--  Oracle  -->
    
< Resource  name ="jdbc/myoracle"  auth ="Container"   type ="javax.sql.DataSource" />
    
< ResourceParams  name ="jdbc/myoracle" >
    
<!--  myoracle是自己起的名子,对应到web.xml中也要用这个名子,以及JSP页面中。  -->
    
< parameter >
        
< name > factory </ name >
        
< value > org.apache.commons.dbcp.BasicDataSourceFactory </ value >
    
</ parameter >
    
< parameter >
        
< name > driverClassName </ name >
        
< value > oracle.jdbc.driver.OracleDriver </ value >
    
</ parameter >
    
< parameter >
        
< name > url </ name >
        
< value > jdbc:oracle:thin:@127.0.0.1:1521:accp </ value > <!--  accp为你的数据库名称  -->
    
</ parameter >
    
< parameter >
         
< name > username </ name >
         
< value > scott </ value >
    
</ parameter >
    
< parameter >
          
< name > password </ name >
          
< value > tiger </ value >
    
</ parameter >
    
< parameter >
        
< name > maxActive </ name >
        
< value > 20 </ value >
    
</ parameter >
    
< parameter >
        
< name > maxIdle </ name >
        
< value > 10 </ value >
    
</ parameter >
    
< parameter >
         
< name > maxWait </ name >
         
< value > 10000 </ value >
     
</ parameter >
 
</ ResourceParams >
<!--  Oracle end  -->
</ Context >
<!--  my DBCP is end  -->


2.然后再打D:/tomcat5/webapps/myapps/WEB-INF/下的web.xml,加入以下东东:(注意要在</web-app>之前加)
        
 
 
< resource-ref >
    
< description > Oracle Datasource example </ description >
    
< res-ref-name > jdbc/myoracle </ res-ref-name >
    
< res-type > javax.sql.DataSource </ res-type >
    
< res-auth > Container </ res-auth >
</ resource-ref >

    OK!配置工作已经完成了。下面就是写一个JSP代码进入测试了。
在D:/tomcat5/webapps/myapps/下编写一个test.jsp,内容如下:
<% @ page import = " javax.naming.Context " %>
<% @ page import = " javax.sql.DataSource " %>
<% @ page import = " javax.naming.InitialContext " %>
<% @ page import = " java.sql.* " %>
<%
    DataSource ds 
=   null ;
    
try
    
{
        Context initCtx 
= new InitialContext();
        Context envCtx 
= (Context) initCtx.lookup("java:comp/env");
        ds 
= (DataSource)envCtx.lookup("jdbc/myoracle");
        
if ( ds !=null)
        
{
            
out.println("Connection is OK!");
            Connection cn
=ds.getConnection();
            
if(cn!=null)
            
{
                
out.println("cn is Ok!");
                Statement stmt 
= cn.createStatement();
                ResultSet rst 
= stmt.executeQuery("select * from BOOK");
                
out.println("<p>rst is Ok!" + rst.next());
                
while(rst.next())
                
{
                    
out.println("<P>BOOK_CODE:" + rst.getString(1));
                }

                cn.close();
            }

            
else
            
{
                 
out.println("rst Fail!");
            }

        }

        
else
            
out.println("Fail!");
    }

    
catch (Exception ne)
    
{
         
out.println(ne);
    }

%>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值