首页 > 学院 > 开发设计 > 正文

好的连接池,免费的

2019-11-18 13:23:52
字体:
来源:转载
供稿:网友

  /*

  * 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);

   }

   }


  



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表