bttvx223.zip

  • 陈丽冬
    了解作者
  • Java
    开发工具
  • 2KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 1
    下载次数
  • 2017-07-08 16:34
    上传日期
这是一个用JAVA写的系统与数据库之间信息存储的代码
bttvx223.zip
  • tConnPool.java
    4.4KB
  • uDbConn.java
    891B
内容介绍
package connection; import java.io.Serializable; import java.sql.*; import java.util.*; public class ConnPool implements java.io.Serializable{ private String driver = null; //数据库驱动程序对象 private String url = null; //数据源的位置 private int size = 0; //连接池的最大连接数目 private String username = ""; //数据源的用户名 private String password = ""; //数据源的密码 private DbConn dc=null; private Vector pool = null; //连接池中的连接列表 public ConnPool(){} //设置数据库驱动程序 public void setDriver(String driver){ if (driver!=null) this.driver=driver; } //获取数据库驱动程序 public String getDriver(){ return driver; } //设置数据源的位置 public void setURL(String url){ if (url!=null) this.url=url; } //获取数据源的位置 public String getURL(){ return url; } //设置最大连接数 public void setSize(int size){ if (size>1) this.size=size; } //获取最大连接数 public int getSize(){ return size; } //设置数据源的用户名 public void setUsername(String username){ if (username!=null) this.username=username; } //获取数据源的用户名 public String getUserName(){ return username; } //设置数据源的密码 public void setPassword(String password){ if (password!=null) this.password=password; } //获取数据源的密码 public String getPassword(){ return password; } //设置用于单个连接任务的DbConn对象 public void setConnBean(DbConn dc){ if (dc!=null) this.dc=dc; } //获取用于单个连接任务的DbConn对象 public DbConn getConnBean() throws Exception{ Connection conn = getConnection(); DbConn dc = new DbConn(conn); //实例化DbConn类 dc.setInuse(true); //设置此连接可用 return dc; } //创建到数据库的连接 private Connection createConnection() throws Exception{ Connection con = null; con = DriverManager.getConnection(url,username,password); return con; } //初始化连接池 public synchronized void initializePool() throws Exception{ if (driver==null) //如果没有加载驱动 throw new Exception("No Driver Provided!"); if (url==null) //如果没有设置数据源的位置 throw new Exception("No URL Proviced!"); if (size<1) //如果当前没有可用的连接 throw new Exception("Connection Pool Size is less than 1!"); try{ Class.forName(driver); for (int i=0; i<size; i++){ //创建连接 Connection con = createConnection(); if (con!=null){ //将指定连接加入连接向量末尾 DbConn dc = new DbConn(con); addConnection(dc); } } }catch (Exception e){ System.err.println(e.getMessage()); throw new Exception(e.getMessage()); } } //将指定连接加入连接向量末尾 private void addConnection(DbConn conn){ if (pool==null) pool=new Vector(size); pool.addElement(conn); } //释放指定连接的资源 public synchronized void releaseConnection(Connection con){ for (int i=0; i<pool.size(); i++){ DbConn connBean = (DbConn)pool.elementAt(i); if (connBean.getConnection()==con){ //寻找到指定连接,将其置为未使用状态 connBean.setInuse(false); break; } } } //从连接池得到一个连接 public synchronized Connection getConnection() throws Exception{ DbConn dc = null; for (int i=0; i<pool.size(); i++){ dc = (DbConn)pool.elementAt(i); // 从连接列表中获得所有连接 if (dc.getInuse()==false){ //如果还有未使用的连接,则使用这个连接 dc.setInuse(true); Connection con = dc.getConnection(); return con; } } //如果连接都已使用,则新建一连接 try{ Connection con = createConnection(); dc = new DbConn(con); dc.setInuse(true); pool.addElement(dc); }catch (Exception e){ System.err.println(e.getMessage()); throw new Exception(e.getMessage()); } return dc.getConnection(); } //清空连接池,释放资源 public synchronized void emptyPool(){ for (int i=0; i<pool.size(); i++){ DbConn connBean = (DbConn)pool.elementAt(i); if (dc.getInuse()==false) dc.close(); //释放连接资源 else{ try{ java.lang.Thread.sleep(20000); dc.close(); }catch (InterruptedException ie){ System.err.println(ie.getMessage()); } } } } }
评论
    相关推荐