数据库连接池 javaBean

   import   java.lang.*;  
  import   java.sql.*;
 
  import   java.util.*;  
  import   java.io.*;  
  import   javax.servlet.*;  
   
  public   class   ConnectionPool  
  {  
  private   Vector   freeConnections   =   null;  
  private   Hashtable   nowConnections   =   null;  
  private   String   driverName   =   "sun.jdbc.odbc.JdbcOdbcDriver";  
  private   String   jdbcURL   =   "jdbc:odbc:software";  
  private   int   maxConnections   =   3;  
           
  public   ConnectionPool   ()  
  {  
  }  
   
  public   void   openPool   ()   throws   SQLException  
  {  
  try  
  {  
  nowConnections   =   new   Hashtable   (maxConnections);  
  freeConnections   =   new   Vector   (maxConnections);  
  Class.forName   (driverName);  
  for   (int   i   =   0;   i   <   maxConnections;   i   ++)  
  freeConnections.addElement   (DriverManager.getConnection   (jdbcURL));  
  }  
  catch   (Exception   ex)  
  {  
  nowConnections   =   null;  
  freeConnections   =   null;  
  throw   new   SQLException   (ex.toString   ());  
  }  
  }  
   
  public   void   closePool   ()   throws   SQLException  
  {  
  if   (nowConnections   !=   null)  
  {  
  for   (Enumeration   e   =   nowConnections.elements   ();   e.hasMoreElements   ();   )  
  ((Connection)   e.nextElement   ()).close   ();  
  nowConnections.clear   ();  
  nowConnections   =   null;  
  }  
               
  if   (freeConnections   !=   null)  
  {  
  for   (Enumeration   e   =   freeConnections.elements   ();   e.hasMoreElements   ();   )  
  ((Connection)   e.nextElement   ()).close   ();  
  freeConnections.removeAllElements   ();  
  freeConnections   =   null;  
  }  
  }  
   
  public   Connection   getConnection   ()   throws   SQLException  
  {  
  if   (freeConnections   ==   null)  
  throw   new   SQLException   ("ConnectionPool还没有建立!");  
  if   (freeConnections.size   ()   ==   0)  
  throw   new   SQLException   ("没有空闲的连接,请稍后再请求!");  
   
  Connection   Conn   =   (Connection)   freeConnections.firstElement   ();  
  freeConnections.removeElement   (Conn);  
  nowConnections.put   (Thread.currentThread   (),   Conn);  
   
  return   Conn;  
  }  
           
  public   void   returnConnection   ()   throws   SQLException  
  {  
  Connection   Conn   =   (Connection)   nowConnections.remove   (Thread.currentThread   ());  
  freeConnections.addElement   (Conn);  
  }  
   
          public   void   setPoolSwitch   (String   on_off)   throws   ServletException  
  {  
  try  
  {  
  if   (on_off.equalsIgnoreCase   ("ON"))  
  openPool   ();  
  if   (on_off.equalsIgnoreCase   ("OFF"))  
  closePool   ();  
  }  
  catch   (SQLException   ex)  
  {  
  throw   new   ServletException   (ex.toString   ());  
  }  
          }  
   
  public   void   setMaxConnections   (int   maxConnections)  
  {  
  this.maxConnections   =   maxConnections;  
  }  
           
  public   void   setDriverName   (String   driverName)  
  {  
  this.driverName   =   driverName;  
  }  
   
  public   void   setJdbcURL   (String   jdbcURL)  
  {  
  this.jdbcURL   =   jdbcURL;  
  }  
  }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值