myconnectionmanager.java

来自「采用JAVA开发」· Java 代码 · 共 71 行

JAVA
71
字号
package com.gctech.sms.util;

import com.ywh.dbcp.ConnectionPool;
import com.gctech.sms.SmsException;
import org.apache.commons.betwixt.io.BeanReader;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class MyConnectionManager extends ConnectionManager{
  public MyConnectionManager() {
  }
  public String getPoolInfo(){
    StringBuffer sb = new StringBuffer();
    sb.append("连接池信息:\n\r")
        .append("当前被使用的连接:").append(pool.getActiveConnCount()).append("\n\r")
        .append("空闲的连接:").append(pool.getFreeConnCount()).append("\n\r")
        .append("最大连接数:").append(pool.getMaxPoolSize()).append("\n\r")
        .append("初试化连接数:").append(pool.getInitPoolSize()).append("\n\r");
    return sb.toString();
  }
  /**
   * 得到数据库连接。
   * @param o 使用者
   * @return 一个数据库连接,可能是从连接池中得到。
   * */
  public Connection getConnection(Object o){
   return pool.getConnection(o);
  }
  /**
   * 得到一个真实的数据库连接。
   * 增加这个接口是因为有些操作比较耗时,可以使用这个接口。
   * */
  public Connection getRealConnection() throws SQLException {
    return pool.getRealConnection();
  }
  public void close(){
    pool.close();
    pool = null;
  }

  ConnectionPool pool;
  public void init(String fileName) throws SmsException {

    try {
      BeanReader reader = new BeanReader();
      reader.registerBeanClass(ConnectionPool.class);
      if ( pool != null ){
        close();
      }
      pool = (ConnectionPool) reader.parse(new FileReader(
          fileName));
      pool.init();
    }
    catch (Throwable ex) {
      logger.error(ex, ex);
      throw new SmsException(ex);
    }

  }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?