一种连接池的实现方案
DB.java
package wkx.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.LinkedList;public class ConnPool {public static final int MAX_CONN_NUM = 10;private static LinkedList<Connection> conns = null;private static int connNum = 0;static {conns = new LinkedList<Connection>();}private ConnPool(){}public static Connection getConn() {Connection conn = null;if(conns.size()==0){try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/project", "root", "root");} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}connNum++;}else{conn=conns.pop();}/** * */ConnPool.printStatus();return conn;}public static void close(Connection conn) {if(connNum>ConnPool.MAX_CONN_NUM){try {if (conn != null) {conn.close();}} catch (SQLException e) {e.printStackTrace();}conn = null;connNum--;}else{conns.push(conn);}ConnPool.printStatus();}public static void printStatus(){System.out.println("闲置连接数:"+conns.size()+" 总连接数:"+connNum+" 已使用连接数:"+(connNum-conns.size()));}}