tomcat 6.0配置oracle数据库连接池

tomcat 6.0配置oracle数据库连接池
tomcat 5.X与tomcat 6.x连接池配置有所不同,这里只是记录tomcat 6.0的配置过程。
 
  容器:tomcat 6.0
 
  数据库:oracle 10g
 
  操作步骤:
 
  1、

D:\oracle\ora92\jdbc\lib\classes12.jar
 
  将oracle数据库的驱动包ojdbc6.jar放到tomcat 6.0/lib,否则运行会报java.lang.ClassNotFoundException异            常,而且你在java Build Path->Libraries->Add JARs把驱动包加进来也还是会报错的,一定要把驱动包加                      到tomcat/lib里面来;
 
  2、
 
  在tomcat的配置文件(context.xml)加入数据库连接信息
 
  <Resource name="jdbc/zhx" auth="Container" type="javax.sql.DataSource"
 
   driverClassName="oracle.jdbc.driver.OracleDriver"
 
   url="jdbc:oracle:thin:@192.168.20.90:1521:carddb"
 
   username="card_settle"
 
   password="card_settle"
 
   maxActive="20"
 
   maxIdle="10"
 
   maxWait="10000" />
 
 
 
  属性说明:
 
  name,数据源名称,通常取"jdbc/xxx"的格式
 
  auth,这个不需要修改,取默认值
 
  type,值为"javax.sql.DataSource",使用数据源的方式
 
  driverClassName,数据库驱动
 
  url,访问数据库的路径信息,carddb是oracle数据库的SID
 
  maxActive,连接池的最大数据库连接数,设为0表示无限制
 
  maxIdle,数据库连接的最大空闲时间,超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制
 
  maxWait,最大建立连接等侍时间,如果超过此时间,将接到异常,如果设为-1表示无限制
 
 
 
 3.程序中需要数据库连接的地主,编写如下代码:
 
 
 
Java代码
import javax.naming.Context; 
import javax.naming.InitialContext; 
import javax.naming.NamingException; 
import javax.sql.DataSource; 
 
public class DataSourceTest{ 
  public static Connection getCon(){ 
    Connection conn = null; 
    try{ 
         Context ctx = new InitialContext(); 
         DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/zhx"); 
         conn = ds.getConnection(); 
    }catch(NamingException e){ 
         e.printStackTrace(); 
    } catch(SQLException e){ 
         e.printStackTrace();  
    }  
 
      return conn; 
    } 
}
 
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
 
public class DataSourceTest{
  public static Connection getCon(){
    Connection conn = null;
    try{
         Context ctx = new InitialContext();
         DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/zhx");
         conn = ds.getConnection();
    }catch(NamingException e){
         e.printStackTrace();
    } catch(SQLException e){
         e.printStackTrace();
    }
 
      return conn;
    }
}
 
   使用完后,记得要调用close()方法,它并不是真正地关闭连接,而是释放出来,让它重新回到连接池。
 
 
 
附:
 
连接池运作原理:
 
  在实际应用开发中,特别是在WEB 应用系统中,如果JSP、Servlet 或EJB 使用JDBC 直 接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁发生这种数据库操作,系统的性能必然会急剧下降,甚至会导致系统崩溃。数据库连接 池技术是 解决这个问题最常用的方法,在许多应用程序服务器( 例 如 :Weblogic, WebSphere,JBoss)中,基本都提供了这项技术,无需自己编程,但是,深入了解这项技术 是非常必要的。
 
  数据库连接池技术的思想非常简单, 将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些 已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。
 
 数据库连接池的主要操作如下:
 
 (1)建立数据库连接池对象(服务器启动)。
 
 (2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。
 
 (3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象 中没有空闲的连接,且连接数没有达 到最大(即:最大活跃连接数) ,创建一个新的数据库 连接。    (4)存取数据库。
 
 (5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。
 
 (6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接) 。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值