设为首页 加入收藏

TOP

一个Oracle数据库链接的JavaBean实例
2014-11-23 17:39:04 】 浏览:5145
Tags:一个 Oracle 数据库 链接 JavaBean 实例

  一个Oracle数据库链接的JavaBean实例


  public class OracleConnectionManager {


  private DBConnectionManager connMgr;
  private final String poolName="Oracle";
  private Connection conn;


  public OracleConnectionManager() {


  String userID = "system";
  String password = "manager";
  String JDBCDriver = "oracle.jdbc.driver.OracleDriver";
  String JDBCDriverType = "jdbc:oracle:thin";
  String DBHost = "127.0.0.1";
  String Port = "1521";
  String SID="sid";
  String url = JDBCDriverType+":@"+DBHost + ":" + Port + ":" +SID;


  connMgr = DBConnectionManager.getInstance();
  if (DBConnectionManager.clients == 1){
  connMgr.init(poolName, JDBCDriver, url, userID, password);
  connMgr.init("egongOracle", JDBCDriver, JDBCDriverType+":@110.7.6.22:1521:egong", "abcusername", "abcpasswd");


  }
  }


  public Connection getConnection() {
  return (conn=connMgr.getConnection(poolName));
  }


  public Connection getConnection(String newOracle) {
  return (conn=connMgr.getConnection(newOracle));
  }


  public void freeConnection() {
  connMgr.freeConnection(poolName,conn);
  }


  public void freeConnection(String newOracle) {
  connMgr.freeConnection(newOracle,conn);
  }


  }


  public class DBConnectionManager {
  static private DBConnectionManager instance=null; // The single instance
  static public int clients=0;


  private Vector drivers = new Vector();
  private PrintWriter log;
  private Hashtable pools = new Hashtable();
  private final int MAX_CONN = 1000;


  /**
  * Returns the single instance, creating one if it s the
  * first time this method is called.
  *
  * @return DBConnectionManager The single instance.
  */
  static synchronized public DBConnectionManager getInstance() {
  if (instance == null) {
  instance = new DBConnectionManager();
  }
  clients++;
  return instance;
  }


  /**
  * A private constructor since this is a Singleton
  */
  private DBConnectionManager() {
  // init();
  }


  /**
  * Returns a connection to the named pool.
  *
  * @param name The pool name as defined in the properties file
  * @param con The Connection
  */
  public void freeConnection(String name, Connection con) {
  DBConnectionPool pool = (DBConnectionPool) pools.get(name);
  if (pool != null) {
  pool.freeConnection(con);
  }
  }


  /**
  * Returns an open connection. If no one is available, and the max
  * number of connections has not been reached, a new connection is
  * created.
  *
  * @param name The pool name as defined in the properties file
  * @return Connection The connection or null
  */
  public Connection getConnection(String name) {
  DBConnectionPool pool = (DBConnectionPool) pools.get(name);
  if (pool != null) {
  return pool.getConnection();
  }
  return null;
  }


  /**
  * Returns an open connection. If no one is available, and the max
  * number of connections has not been reached, a new connection is
  * created. If the max number has been reached, waits until one
  * is available or the specified time has elapsed.
  *
  * @param name The pool name as defined in the properties file
  * @param time The number of milliseconds to wait
  * @return Connection The connection or null
  */
  public Connection getConnection(String name, long time) {
  DBConnectionPool pool = (DBConnectionPool) pools.get(name);
  if (pool != null) {
  return pool.getConnection(time);
  }
  return null;
  }


  /**
  * Closes all open connections and dereGISters all drivers.
  */
  public synchronized void release() {
  // Wait until called by the last client
  if (--clients != 0) {
  return;
  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇jsp+beans实现读取数据库的例子 下一篇使用JavaApplet访问数据库

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目