⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbconnpool.java~3~

📁 Java完全自学手册 全部随书代码 作者:马军 王灏
💻 JAVA~3~
字号:
package stumng;import java.sql.*;import java.util.*;/*连接池类.能够根据要求创建新连接,直到最大连接数为止.*/public class DBConnPool {       //实际使用中的连接数       private int inUse=0;       //空闲连接       private Vector connections = new Vector();       //连接池名       private String poolname;       //数据库标识       private String dbid;       //驱动程序名       private String drivername;       //数据库账号       private String username;       //数据库密码       private String passwd;       //最大连接数       private int maxconn;       public DBConnPool(String poolname, String drivername, String dbid, String username, String passwd, int maxconn) {               this.poolname = poolname;               this.dbid = dbid;               this.drivername = drivername;               this.username = username;               this.passwd = passwd;               this.maxconn = maxconn;       }       /*将连接返回给连接池*/       public synchronized void releaseConnection(Connection con) {               // 将指定连接加入到向量末尾               connections.addElement(con);               //连接数减一               inUse--;       }       /*从连接池得到一个连接*/       public synchronized Connection getConnection() {               Connection con = null;               if (connections.size() > 0) {                       // 获取连接列表中获得第一个连接                       con = (Connection) connections.elementAt(0);                       connections.removeElementAt(0);                       //如果此连接已关闭,则继续获取        try {           if (con.isClosed())              con = getConnection();        }        catch (Exception ex) {           ex.printStackTrace();        }               }               //如果实际使用的连接小于最大连接数,就新创建一个连接               else if (maxconn == 0 || inUse < maxconn) {                       con = newConnection();               }               if (con != null) {                       //连接数增一                       inUse++;               }               //返回一个连接               return con;       }       /*创建新的连接*/       private Connection newConnection() {               Connection con = null;               try {                       //加载驱动程序                       Class.forName(drivername);                       //建立连接                       con = DriverManager.getConnection(dbid, username, passwd);               }               catch (Exception e) {                       e.printStackTrace();                       return null;               }               //返回该连接               return con;       }       /*关闭所有连接*/       public synchronized void closeConn() {               Enumeration allConnections = connections.elements();               while (allConnections.hasMoreElements()) {                       Connection con = (Connection) allConnections.nextElement();                       try {                               con.close();                       }                       catch (SQLException e) {                               e.printStackTrace();                       }               }               connections.removeAllElements();       }}

⌨️ 快捷键说明

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