龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

好的连接池,免费的

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
/* * Copyright (C) 2000-2002 Jackliu * a href="mailto: service@cn-Java.com"service@cn-java.com/a * WWW.CN-JAVA.COM All Rights Reserved */ package com.cn-java.database; import java.util.*; import java.sql.*; /** * font size=4b数据库连接池

  /*
  
  * Copyright (C) 2000-2002 Jackliu
  
  * <a href="mailto: service@cn-Java.com">service@cn-java.com</a>
  
  
  * WWW.CN-JAVA.COM All Rights Reserved
  
  */
  
  package com.cn-java.database;
  


  
   import java.util.*;
  
   import java.sql.*;


  


  
   /**
  
   * <font size=4><b>数据库连接池</b></font>
  
   * <font color=gray>这个类为系统提供一个数据库的连接池</font>
  
   * <br><br>
  
   * @see Sys_config
  
   * @author <a href="mailto: suntoday@eyou.com">Jackliu</a>
  
  
   */
  
   public class DBPoolsManager{
  
   static private DBPoolsManager instance; // 唯一实例
  
   DBPools pools;
  
   Driver theDrv;
  
  
  
   /**
  
   * 构造方法
  
   * <br>创建数据库连接池(Oracle OCI)
  
   */
  
   private DBPoolsManager(){
  
   /* use oracle OCI8*/
  
   String url = "jdbc:oracle:oci8:@"+Sys_config.getDATABASE_INSTANCE();
  
  
   String user = Sys_config.getDATABASE_USERID();
  
   String passWord = Sys_config.getDATABASE_USERPWD();
  
   int max = Integer.parseInt(Sys_config.getDATA_SESSION());
  
   try{
  
   /*use mysql driver
  
   theDrv = new org.gjt.mm.mysql.Driver();*/


  

/*use oracle driver*/
  
   theDrv = new oracle.jdbc.driver.OracleDriver();
  
   DriverManager.registerDriver(theDrv);
  
   }
  
   catch ( SQLException e ){
  
   //debug to err.log
  
   e.printStackTrace(System.err);
  
   }
  
   pools = new DBPools(url, user, password, max);
  
   pools.showDetail();
  
   }


  

/**
  
   * 得到一个数据库的连接池治理的实例
  
   * @return 返回一个数据库连接池治理的一个实例
  
   */
  
   static synchronized public DBPoolsManager getInstance(){
  
   if (instance == null){
  
   instance = new DBPoolsManager();
  
   }
  
   return instance;
  
   }


  

/**
  
   * 从数据库连接池中获取一个空闲的数据库连接实例
  
   * <br>假如超出连接池的最大连接,返回一个空的对象
  
   * @return 返回一个数据库连接对象
  
   */
  
   public Connection getConnection(){
  
   return pools.getConnection();
  
   }


  

/**
  
   * 释放一个正在工作的数据库连接到数据库连接池
  
   * @param con Connection 一个数据库连接
  
   */
  
   public void freeConnection(Connection con){
  
   pools.freeConnection(con);
  
   }
  
  
  
   /**
  
   * 关闭数据库连接池
  
   */
  
   public void close(){
  
   try{
  
   pools.showDetail();
  
   pools.close();
  
   DriverManager.deregisterDriver(theDrv);
  
   }
  
   catch ( SQLException e ){
  
   //debug to err.log
  
   e.printStackTrace(System.err);
  
   }
  
   }


  


  

精彩图集

赞助商链接