在tomcat5中配置数据库连接池(DBCP)

1/5/2008来源:Java教程人气:5717


  首先,在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,找到将它改为以下形式,并加入Oracle的设置信息。
  
      prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/>
      
  
  
  
    
     factory
  org.apache.commons.dbcp.BasicDataSourceFactory
   

   
    driverClassName
    oracle.jdbc.driver.OracleDriver
        

       
   url
  jdbc:oracle:thin:@127.0.0.1:1521:accp
  
   

   
   username
   scott
   

   
   passWord
   tiger
   

   
    maxActive
          20
   

   
   maxIdle
   10
   

   
   maxWait
   10000
   

  

   
  

  
  
  
  
  2.然后再打D:\tomcat5\webapps\myapps\WEB-INF\下的web.xml,加入以下东东:(注重要在之前加)
   
   Oracle Datasource example
   jdbc/myoracle
   javax.sql.DataSource
   Container
  

  
  下面就是写一个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("