博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【java】简单实现数据库连接池
阅读量:5809 次
发布时间:2019-06-18

本文共 24462 字,大约阅读时间需要 81 分钟。

一直在想java事务是怎么实现的,在原声jdbc的时候级别下,我们可以通过关掉autocommit 然后再手动commit。但是项目开发中基本上是看不见conection的。所以自己决定简单实现框架的一点皮毛功能。首先就是数据库连接池了

1. 先定义一个接口

import java.sql.Connection;public interface IConnectionPool {    /**     * 获取一个连接     * @return     */    Connection getConnection();    /**     * 用完后调用,把连接放回池中,实现复用     */    void freeLocalConnection();    /**     * 销毁连接池     */    void destroy();    //测试用    void status();}

2. 实现数据库连接池的代码, 为了线程安全,简单粗暴地用synchronized关键字

  实现事务的关键是,我们执行一个事务的Connection是同一个,我们可以在事务控制的时候用AOP,在事务开始的时候 调用setAutoCommit(false)  然后在事务代码之后调用commit()方法.

  所以在数据库连接池中使用了一个ThreadLocal来保证一条线程拿到的是同一个Connection。

import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.List;import java.util.Properties;import java.util.Vector;import java.util.concurrent.atomic.AtomicInteger;public class ConnectionPollImpl implements IConnectionPool{        private String username;    private String password;    private String url;    private String driver;    private Integer maxSize;    private Integer initSize = 5;    private long timeOut;        //连接总数    private AtomicInteger totalSize = new AtomicInteger(0);    //空闲的连接    private List
freeConnections = new Vector<>(); //已经被使用的连接 private List
activeConnections = new Vector<>(); //存储当前线程的连接, 事务控制的关键 private ThreadLocal
localConnection = new ThreadLocal
(){ /** * 第一次调用get()方法时执行 * @return */ @Override protected Connection initialValue() { try { return connect(); } catch (SQLException e) { e.printStackTrace(); } return null; } @Override public void remove() { Connection connection = get(); activeConnections.remove(connection); freeConnections.add(connection); super.remove(); } }; private static ConnectionPollImpl instance; public ConnectionPollImpl() { loadConfig(); init(); } private void init() { try { for(int i=0;i < initSize;i++){ freeConnections.add(newConnection()); } } catch (SQLException e) { e.printStackTrace(); } } public static ConnectionPollImpl getInstance() { synchronized (ConnectionPollImpl.class) { if (instance == null) { synchronized (ConnectionPollImpl.class) { if(instance == null) { instance = new ConnectionPollImpl(); } } } } return instance; } @Override public synchronized Connection getConnection() { return localConnection.get(); } @Override public void freeLocalConnection() { localConnection.remove(); System.out.println(Thread.currentThread().getName() + "释放了一个连接"); } @Override public synchronized void destroy() { try { for(Connection connection : freeConnections) { freeConnections.remove(connection); connection.close(); } freeConnections = null; for (Connection connection : activeConnections) { activeConnections.remove(connection); connection.close(); } activeConnections = null; } catch (SQLException e) { e.printStackTrace(); } } @Override public synchronized void status() { System.out.println("当前连接池总连接数为: " + totalSize.get() + " , 空闲连接数为:" + freeConnections.size() + "使用中的连接数为:" + activeConnections.size()); } private synchronized Connection connect() throws SQLException { // 判断有没有闲置的连接 if(freeConnections.size() > 0) { //如果有闲置连接,直接拿第一个 Connection connection = freeConnections.get(0); freeConnections.remove(0); //连接可用,返回;不可用,继续拿 if (isValid(connection)) { activeConnections.add(connection); return connection; } else { return connect(); } } else { //没有闲置连接, 判断当前连接池是否饱和 if(totalSize.get() == maxSize) { //如果饱和,等待, 继续获取 try { wait(timeOut); } catch (InterruptedException e) { e.printStackTrace(); } return connect(); } else { //没有饱和,新建一个连接 Connection connection = newConnection(); if(connection != null) { activeConnections.add(connection); return connection; } else { throw new SQLException(); } } } } private synchronized Connection newConnection() throws SQLException { try { Class.forName(this.driver); } catch (ClassNotFoundException e) { e.printStackTrace(); } Connection connection = DriverManager.getConnection(url, username, password); totalSize.incrementAndGet(); return connection; } private boolean isValid(Connection connection) { try { return connection != null && !connection.isClosed(); } catch (SQLException e) { e.printStackTrace(); } return false; } private void loadConfig(){ //读取配置文件 InputStream in = ConnectionPollImpl.class.getClassLoader().getResourceAsStream("jdbc.properties"); Properties p = new Properties(); try { p.load(in); } catch (IOException e) { e.printStackTrace(); } finally { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } this.username = p.getProperty("jdbc.username"); this.password = p.getProperty("jdbc.password"); this.url = p.getProperty("jdbc.url"); this.driver = p.getProperty("jdbc.driver"); this.maxSize = Integer.valueOf(p.getProperty("noob.maxSize","20")); this.initSize = Integer.valueOf(p.getProperty("noob.initSize","5")); this.timeOut = Long.valueOf(p.getProperty("noob.timeOut","1200")); }}

 测试代码

import java.sql.Connection;import java.util.Random;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;public class Test {    public static void main(String[] args) {        IConnectionPool connectionPool = ConnectionPollImpl.getInstance();                //开启一个线程查看连接池的状态        ScheduledExecutorService service = Executors.newScheduledThreadPool(1);        service.scheduleWithFixedDelay(connectionPool::status, 0, 5, TimeUnit.SECONDS);                //开启20个线程,不断获取连接,比较哈希值看同一个线程取出的连接是不是同一个        for(int i = 0; i < 20; i++) {            Random random = new Random();            int count = random.nextInt(30) + 3;            Thread t = new Thread(() ->{                try {                    for (int j = 0; j < count; j++) {                        Connection connection = connectionPool.getConnection();                                                System.out.println(Thread.currentThread().getName() + "共" + count + "次循环, 目前第" + (j + 1) + "次" + " hashcode :" + connection.hashCode());                        TimeUnit.SECONDS.sleep(1);                    }                } catch (InterruptedException e) {                    e.printStackTrace();                }                connectionPool.freeLocalConnection();            });            t.setName("test" + i);            t.start();        }    }}

测试结果, 从结果看基本实现了想要的功能

  1. 控制连接池的大小

  2. 一个线程释放一个连接后会把连接放回池中给别的线程用

  3. 一个线程始终取出同一个连接

当前连接池总连接数为: 5 , 空闲连接数为:5使用中的连接数为:0test6共22次循环, 目前第1次 hashcode :691902360test2共18次循环, 目前第1次 hashcode :708075980test3共16次循环, 目前第1次 hashcode :1535444742test4共25次循环, 目前第1次 hashcode :1149790650test5共15次循环, 目前第1次 hashcode :1825737020test1共16次循环, 目前第1次 hashcode :2094482202test0共21次循环, 目前第1次 hashcode :889774551test18共16次循环, 目前第1次 hashcode :1626524709test11共17次循环, 目前第1次 hashcode :912223199test19共28次循环, 目前第1次 hashcode :422379330test3共16次循环, 目前第2次 hashcode :1535444742test2共18次循环, 目前第2次 hashcode :708075980test6共22次循环, 目前第2次 hashcode :691902360test5共15次循环, 目前第2次 hashcode :1825737020test4共25次循环, 目前第2次 hashcode :1149790650test1共16次循环, 目前第2次 hashcode :2094482202test0共21次循环, 目前第2次 hashcode :889774551test18共16次循环, 目前第2次 hashcode :1626524709test11共17次循环, 目前第2次 hashcode :912223199test19共28次循环, 目前第2次 hashcode :422379330test2共18次循环, 目前第3次 hashcode :708075980test4共25次循环, 目前第3次 hashcode :1149790650test3共16次循环, 目前第3次 hashcode :1535444742test6共22次循环, 目前第3次 hashcode :691902360test5共15次循环, 目前第3次 hashcode :1825737020test1共16次循环, 目前第3次 hashcode :2094482202test0共21次循环, 目前第3次 hashcode :889774551test18共16次循环, 目前第3次 hashcode :1626524709test11共17次循环, 目前第3次 hashcode :912223199test19共28次循环, 目前第3次 hashcode :422379330test5共15次循环, 目前第4次 hashcode :1825737020test2共18次循环, 目前第4次 hashcode :708075980test6共22次循环, 目前第4次 hashcode :691902360test3共16次循环, 目前第4次 hashcode :1535444742test4共25次循环, 目前第4次 hashcode :1149790650test1共16次循环, 目前第4次 hashcode :2094482202test0共21次循环, 目前第4次 hashcode :889774551test18共16次循环, 目前第4次 hashcode :1626524709test11共17次循环, 目前第4次 hashcode :912223199test19共28次循环, 目前第4次 hashcode :422379330test3共16次循环, 目前第5次 hashcode :1535444742test5共15次循环, 目前第5次 hashcode :1825737020test6共22次循环, 目前第5次 hashcode :691902360test4共25次循环, 目前第5次 hashcode :1149790650test2共18次循环, 目前第5次 hashcode :708075980test1共16次循环, 目前第5次 hashcode :2094482202test0共21次循环, 目前第5次 hashcode :889774551test18共16次循环, 目前第5次 hashcode :1626524709test11共17次循环, 目前第5次 hashcode :912223199test19共28次循环, 目前第5次 hashcode :422379330test3共16次循环, 目前第6次 hashcode :1535444742test5共15次循环, 目前第6次 hashcode :1825737020test4共25次循环, 目前第6次 hashcode :1149790650test2共18次循环, 目前第6次 hashcode :708075980test6共22次循环, 目前第6次 hashcode :691902360当前连接池总连接数为: 10 , 空闲连接数为:0使用中的连接数为:10test1共16次循环, 目前第6次 hashcode :2094482202test0共21次循环, 目前第6次 hashcode :889774551test18共16次循环, 目前第6次 hashcode :1626524709test11共17次循环, 目前第6次 hashcode :912223199test19共28次循环, 目前第6次 hashcode :422379330test2共18次循环, 目前第7次 hashcode :708075980test4共25次循环, 目前第7次 hashcode :1149790650test6共22次循环, 目前第7次 hashcode :691902360test3共16次循环, 目前第7次 hashcode :1535444742test5共15次循环, 目前第7次 hashcode :1825737020test1共16次循环, 目前第7次 hashcode :2094482202test0共21次循环, 目前第7次 hashcode :889774551test18共16次循环, 目前第7次 hashcode :1626524709test11共17次循环, 目前第7次 hashcode :912223199test19共28次循环, 目前第7次 hashcode :422379330test3共16次循环, 目前第8次 hashcode :1535444742test5共15次循环, 目前第8次 hashcode :1825737020test2共18次循环, 目前第8次 hashcode :708075980test6共22次循环, 目前第8次 hashcode :691902360test4共25次循环, 目前第8次 hashcode :1149790650test1共16次循环, 目前第8次 hashcode :2094482202test0共21次循环, 目前第8次 hashcode :889774551test18共16次循环, 目前第8次 hashcode :1626524709test11共17次循环, 目前第8次 hashcode :912223199test19共28次循环, 目前第8次 hashcode :422379330test5共15次循环, 目前第9次 hashcode :1825737020test4共25次循环, 目前第9次 hashcode :1149790650test3共16次循环, 目前第9次 hashcode :1535444742test2共18次循环, 目前第9次 hashcode :708075980test6共22次循环, 目前第9次 hashcode :691902360test1共16次循环, 目前第9次 hashcode :2094482202test0共21次循环, 目前第9次 hashcode :889774551test18共16次循环, 目前第9次 hashcode :1626524709test11共17次循环, 目前第9次 hashcode :912223199test19共28次循环, 目前第9次 hashcode :422379330test5共15次循环, 目前第10次 hashcode :1825737020test6共22次循环, 目前第10次 hashcode :691902360test3共16次循环, 目前第10次 hashcode :1535444742test2共18次循环, 目前第10次 hashcode :708075980test4共25次循环, 目前第10次 hashcode :1149790650test1共16次循环, 目前第10次 hashcode :2094482202test0共21次循环, 目前第10次 hashcode :889774551test18共16次循环, 目前第10次 hashcode :1626524709test11共17次循环, 目前第10次 hashcode :912223199test19共28次循环, 目前第10次 hashcode :422379330当前连接池总连接数为: 10 , 空闲连接数为:0使用中的连接数为:10test5共15次循环, 目前第11次 hashcode :1825737020test3共16次循环, 目前第11次 hashcode :1535444742test6共22次循环, 目前第11次 hashcode :691902360test4共25次循环, 目前第11次 hashcode :1149790650test2共18次循环, 目前第11次 hashcode :708075980test1共16次循环, 目前第11次 hashcode :2094482202test0共21次循环, 目前第11次 hashcode :889774551test18共16次循环, 目前第11次 hashcode :1626524709test11共17次循环, 目前第11次 hashcode :912223199test19共28次循环, 目前第11次 hashcode :422379330test2共18次循环, 目前第12次 hashcode :708075980test5共15次循环, 目前第12次 hashcode :1825737020test3共16次循环, 目前第12次 hashcode :1535444742test6共22次循环, 目前第12次 hashcode :691902360test4共25次循环, 目前第12次 hashcode :1149790650test1共16次循环, 目前第12次 hashcode :2094482202test0共21次循环, 目前第12次 hashcode :889774551test18共16次循环, 目前第12次 hashcode :1626524709test11共17次循环, 目前第12次 hashcode :912223199test19共28次循环, 目前第12次 hashcode :422379330test6共22次循环, 目前第13次 hashcode :691902360test2共18次循环, 目前第13次 hashcode :708075980test3共16次循环, 目前第13次 hashcode :1535444742test5共15次循环, 目前第13次 hashcode :1825737020test4共25次循环, 目前第13次 hashcode :1149790650test1共16次循环, 目前第13次 hashcode :2094482202test0共21次循环, 目前第13次 hashcode :889774551test18共16次循环, 目前第13次 hashcode :1626524709test11共17次循环, 目前第13次 hashcode :912223199test19共28次循环, 目前第13次 hashcode :422379330test3共16次循环, 目前第14次 hashcode :1535444742test5共15次循环, 目前第14次 hashcode :1825737020test6共22次循环, 目前第14次 hashcode :691902360test4共25次循环, 目前第14次 hashcode :1149790650test2共18次循环, 目前第14次 hashcode :708075980test1共16次循环, 目前第14次 hashcode :2094482202test0共21次循环, 目前第14次 hashcode :889774551test18共16次循环, 目前第14次 hashcode :1626524709test11共17次循环, 目前第14次 hashcode :912223199test19共28次循环, 目前第14次 hashcode :422379330test2共18次循环, 目前第15次 hashcode :708075980test5共15次循环, 目前第15次 hashcode :1825737020test4共25次循环, 目前第15次 hashcode :1149790650test6共22次循环, 目前第15次 hashcode :691902360test3共16次循环, 目前第15次 hashcode :1535444742test1共16次循环, 目前第15次 hashcode :2094482202test0共21次循环, 目前第15次 hashcode :889774551test18共16次循环, 目前第15次 hashcode :1626524709test11共17次循环, 目前第15次 hashcode :912223199test19共28次循环, 目前第15次 hashcode :422379330当前连接池总连接数为: 10 , 空闲连接数为:0使用中的连接数为:10test6共22次循环, 目前第16次 hashcode :691902360test4共25次循环, 目前第16次 hashcode :1149790650test5释放了一个连接test3共16次循环, 目前第16次 hashcode :1535444742test2共18次循环, 目前第16次 hashcode :708075980test1共16次循环, 目前第16次 hashcode :2094482202test0共21次循环, 目前第16次 hashcode :889774551test18共16次循环, 目前第16次 hashcode :1626524709test11共17次循环, 目前第16次 hashcode :912223199test19共28次循环, 目前第16次 hashcode :422379330test7共6次循环, 目前第1次 hashcode :1825737020test2共18次循环, 目前第17次 hashcode :708075980test3释放了一个连接test6共22次循环, 目前第17次 hashcode :691902360test4共25次循环, 目前第17次 hashcode :1149790650test1释放了一个连接test0共21次循环, 目前第17次 hashcode :889774551test18释放了一个连接test11共17次循环, 目前第17次 hashcode :912223199test19共28次循环, 目前第17次 hashcode :422379330test7共6次循环, 目前第2次 hashcode :1825737020test12共12次循环, 目前第1次 hashcode :2094482202test15共12次循环, 目前第1次 hashcode :1626524709test8共31次循环, 目前第1次 hashcode :1535444742test4共25次循环, 目前第18次 hashcode :1149790650test2共18次循环, 目前第18次 hashcode :708075980test6共22次循环, 目前第18次 hashcode :691902360test0共21次循环, 目前第18次 hashcode :889774551test11释放了一个连接test19共28次循环, 目前第18次 hashcode :422379330test7共6次循环, 目前第3次 hashcode :1825737020test8共31次循环, 目前第2次 hashcode :1535444742test12共12次循环, 目前第2次 hashcode :2094482202test15共12次循环, 目前第2次 hashcode :1626524709test4共25次循环, 目前第19次 hashcode :1149790650test6共22次循环, 目前第19次 hashcode :691902360test2释放了一个连接test0共21次循环, 目前第19次 hashcode :889774551test13共30次循环, 目前第1次 hashcode :912223199test19共28次循环, 目前第19次 hashcode :422379330test14共27次循环, 目前第1次 hashcode :708075980test7共6次循环, 目前第4次 hashcode :1825737020test12共12次循环, 目前第3次 hashcode :2094482202test15共12次循环, 目前第3次 hashcode :1626524709test8共31次循环, 目前第3次 hashcode :1535444742test6共22次循环, 目前第20次 hashcode :691902360test4共25次循环, 目前第20次 hashcode :1149790650test0共21次循环, 目前第20次 hashcode :889774551test13共30次循环, 目前第2次 hashcode :912223199test19共28次循环, 目前第20次 hashcode :422379330test14共27次循环, 目前第2次 hashcode :708075980test7共6次循环, 目前第5次 hashcode :1825737020test8共31次循环, 目前第4次 hashcode :1535444742test15共12次循环, 目前第4次 hashcode :1626524709test12共12次循环, 目前第4次 hashcode :2094482202当前连接池总连接数为: 10 , 空闲连接数为:0使用中的连接数为:10test6共22次循环, 目前第21次 hashcode :691902360test4共25次循环, 目前第21次 hashcode :1149790650test0共21次循环, 目前第21次 hashcode :889774551test13共30次循环, 目前第3次 hashcode :912223199test19共28次循环, 目前第21次 hashcode :422379330test14共27次循环, 目前第3次 hashcode :708075980test7共6次循环, 目前第6次 hashcode :1825737020test12共12次循环, 目前第5次 hashcode :2094482202test8共31次循环, 目前第5次 hashcode :1535444742test15共12次循环, 目前第5次 hashcode :1626524709test4共25次循环, 目前第22次 hashcode :1149790650test6共22次循环, 目前第22次 hashcode :691902360test0释放了一个连接test19共28次循环, 目前第22次 hashcode :422379330test13共30次循环, 目前第4次 hashcode :912223199test14共27次循环, 目前第4次 hashcode :708075980test16共19次循环, 目前第1次 hashcode :889774551test7释放了一个连接test8共31次循环, 目前第6次 hashcode :1535444742test12共12次循环, 目前第6次 hashcode :2094482202test15共12次循环, 目前第6次 hashcode :1626524709test4共25次循环, 目前第23次 hashcode :1149790650test6释放了一个连接test19共28次循环, 目前第23次 hashcode :422379330test14共27次循环, 目前第5次 hashcode :708075980test13共30次循环, 目前第5次 hashcode :912223199test16共19次循环, 目前第2次 hashcode :889774551test12共12次循环, 目前第7次 hashcode :2094482202test9共15次循环, 目前第1次 hashcode :691902360test17共15次循环, 目前第1次 hashcode :1825737020test8共31次循环, 目前第7次 hashcode :1535444742test15共12次循环, 目前第7次 hashcode :1626524709test4共25次循环, 目前第24次 hashcode :1149790650test19共28次循环, 目前第24次 hashcode :422379330test14共27次循环, 目前第6次 hashcode :708075980test13共30次循环, 目前第6次 hashcode :912223199test16共19次循环, 目前第3次 hashcode :889774551test8共31次循环, 目前第8次 hashcode :1535444742test12共12次循环, 目前第8次 hashcode :2094482202test17共15次循环, 目前第2次 hashcode :1825737020test9共15次循环, 目前第2次 hashcode :691902360test15共12次循环, 目前第8次 hashcode :1626524709test4共25次循环, 目前第25次 hashcode :1149790650test19共28次循环, 目前第25次 hashcode :422379330test13共30次循环, 目前第7次 hashcode :912223199test14共27次循环, 目前第7次 hashcode :708075980test16共19次循环, 目前第4次 hashcode :889774551test12共12次循环, 目前第9次 hashcode :2094482202test9共15次循环, 目前第3次 hashcode :691902360test17共15次循环, 目前第3次 hashcode :1825737020test8共31次循环, 目前第9次 hashcode :1535444742test15共12次循环, 目前第9次 hashcode :1626524709当前连接池总连接数为: 10 , 空闲连接数为:0使用中的连接数为:10test4释放了一个连接test13共30次循环, 目前第8次 hashcode :912223199test19共28次循环, 目前第26次 hashcode :422379330test14共27次循环, 目前第8次 hashcode :708075980test10共17次循环, 目前第1次 hashcode :1149790650test16共19次循环, 目前第5次 hashcode :889774551test9共15次循环, 目前第4次 hashcode :691902360test12共12次循环, 目前第10次 hashcode :2094482202test8共31次循环, 目前第10次 hashcode :1535444742test17共15次循环, 目前第4次 hashcode :1825737020test15共12次循环, 目前第10次 hashcode :1626524709test19共28次循环, 目前第27次 hashcode :422379330test13共30次循环, 目前第9次 hashcode :912223199test14共27次循环, 目前第9次 hashcode :708075980test10共17次循环, 目前第2次 hashcode :1149790650test16共19次循环, 目前第6次 hashcode :889774551test8共31次循环, 目前第11次 hashcode :1535444742test17共15次循环, 目前第5次 hashcode :1825737020test12共12次循环, 目前第11次 hashcode :2094482202test9共15次循环, 目前第5次 hashcode :691902360test15共12次循环, 目前第11次 hashcode :1626524709test14共27次循环, 目前第10次 hashcode :708075980test13共30次循环, 目前第10次 hashcode :912223199test19共28次循环, 目前第28次 hashcode :422379330test10共17次循环, 目前第3次 hashcode :1149790650test16共19次循环, 目前第7次 hashcode :889774551test9共15次循环, 目前第6次 hashcode :691902360test12共12次循环, 目前第12次 hashcode :2094482202test8共31次循环, 目前第12次 hashcode :1535444742test17共15次循环, 目前第6次 hashcode :1825737020test15共12次循环, 目前第12次 hashcode :1626524709test14共27次循环, 目前第11次 hashcode :708075980test19释放了一个连接test13共30次循环, 目前第11次 hashcode :912223199test10共17次循环, 目前第4次 hashcode :1149790650test16共19次循环, 目前第8次 hashcode :889774551test9共15次循环, 目前第7次 hashcode :691902360test12释放了一个连接test17共15次循环, 目前第7次 hashcode :1825737020test8共31次循环, 目前第13次 hashcode :1535444742test15释放了一个连接test13共30次循环, 目前第12次 hashcode :912223199test14共27次循环, 目前第12次 hashcode :708075980test10共17次循环, 目前第5次 hashcode :1149790650test16共19次循环, 目前第9次 hashcode :889774551test9共15次循环, 目前第8次 hashcode :691902360test8共31次循环, 目前第14次 hashcode :1535444742test17共15次循环, 目前第8次 hashcode :1825737020当前连接池总连接数为: 10 , 空闲连接数为:3使用中的连接数为:7test14共27次循环, 目前第13次 hashcode :708075980test13共30次循环, 目前第13次 hashcode :912223199test10共17次循环, 目前第6次 hashcode :1149790650test16共19次循环, 目前第10次 hashcode :889774551test8共31次循环, 目前第15次 hashcode :1535444742test17共15次循环, 目前第9次 hashcode :1825737020test9共15次循环, 目前第9次 hashcode :691902360test14共27次循环, 目前第14次 hashcode :708075980test13共30次循环, 目前第14次 hashcode :912223199test10共17次循环, 目前第7次 hashcode :1149790650test16共19次循环, 目前第11次 hashcode :889774551test17共15次循环, 目前第10次 hashcode :1825737020test8共31次循环, 目前第16次 hashcode :1535444742test9共15次循环, 目前第10次 hashcode :691902360test13共30次循环, 目前第15次 hashcode :912223199test14共27次循环, 目前第15次 hashcode :708075980test10共17次循环, 目前第8次 hashcode :1149790650test16共19次循环, 目前第12次 hashcode :889774551test8共31次循环, 目前第17次 hashcode :1535444742test9共15次循环, 目前第11次 hashcode :691902360test17共15次循环, 目前第11次 hashcode :1825737020test13共30次循环, 目前第16次 hashcode :912223199test14共27次循环, 目前第16次 hashcode :708075980test10共17次循环, 目前第9次 hashcode :1149790650test16共19次循环, 目前第13次 hashcode :889774551test17共15次循环, 目前第12次 hashcode :1825737020test8共31次循环, 目前第18次 hashcode :1535444742test9共15次循环, 目前第12次 hashcode :691902360test13共30次循环, 目前第17次 hashcode :912223199test14共27次循环, 目前第17次 hashcode :708075980test10共17次循环, 目前第10次 hashcode :1149790650test16共19次循环, 目前第14次 hashcode :889774551test9共15次循环, 目前第13次 hashcode :691902360test8共31次循环, 目前第19次 hashcode :1535444742test17共15次循环, 目前第13次 hashcode :1825737020当前连接池总连接数为: 10 , 空闲连接数为:3使用中的连接数为:7test13共30次循环, 目前第18次 hashcode :912223199test14共27次循环, 目前第18次 hashcode :708075980test10共17次循环, 目前第11次 hashcode :1149790650test16共19次循环, 目前第15次 hashcode :889774551test8共31次循环, 目前第20次 hashcode :1535444742test9共15次循环, 目前第14次 hashcode :691902360test17共15次循环, 目前第14次 hashcode :1825737020test14共27次循环, 目前第19次 hashcode :708075980test13共30次循环, 目前第19次 hashcode :912223199test10共17次循环, 目前第12次 hashcode :1149790650test16共19次循环, 目前第16次 hashcode :889774551test8共31次循环, 目前第21次 hashcode :1535444742test9共15次循环, 目前第15次 hashcode :691902360test17共15次循环, 目前第15次 hashcode :1825737020test13共30次循环, 目前第20次 hashcode :912223199test14共27次循环, 目前第20次 hashcode :708075980test10共17次循环, 目前第13次 hashcode :1149790650test16共19次循环, 目前第17次 hashcode :889774551test8共31次循环, 目前第22次 hashcode :1535444742test17释放了一个连接test9释放了一个连接test13共30次循环, 目前第21次 hashcode :912223199test14共27次循环, 目前第21次 hashcode :708075980test10共17次循环, 目前第14次 hashcode :1149790650test16共19次循环, 目前第18次 hashcode :889774551test8共31次循环, 目前第23次 hashcode :1535444742test13共30次循环, 目前第22次 hashcode :912223199test14共27次循环, 目前第22次 hashcode :708075980test10共17次循环, 目前第15次 hashcode :1149790650test16共19次循环, 目前第19次 hashcode :889774551test8共31次循环, 目前第24次 hashcode :1535444742当前连接池总连接数为: 10 , 空闲连接数为:5使用中的连接数为:5test14共27次循环, 目前第23次 hashcode :708075980test13共30次循环, 目前第23次 hashcode :912223199test10共17次循环, 目前第16次 hashcode :1149790650test16释放了一个连接test8共31次循环, 目前第25次 hashcode :1535444742test13共30次循环, 目前第24次 hashcode :912223199test14共27次循环, 目前第24次 hashcode :708075980test10共17次循环, 目前第17次 hashcode :1149790650test8共31次循环, 目前第26次 hashcode :1535444742test14共27次循环, 目前第25次 hashcode :708075980test13共30次循环, 目前第25次 hashcode :912223199test10释放了一个连接test8共31次循环, 目前第27次 hashcode :1535444742test14共27次循环, 目前第26次 hashcode :708075980test13共30次循环, 目前第26次 hashcode :912223199test8共31次循环, 目前第28次 hashcode :1535444742test13共30次循环, 目前第27次 hashcode :912223199test14共27次循环, 目前第27次 hashcode :708075980test8共31次循环, 目前第29次 hashcode :1535444742当前连接池总连接数为: 10 , 空闲连接数为:7使用中的连接数为:3test13共30次循环, 目前第28次 hashcode :912223199test14释放了一个连接test8共31次循环, 目前第30次 hashcode :1535444742test13共30次循环, 目前第29次 hashcode :912223199test8共31次循环, 目前第31次 hashcode :1535444742test13共30次循环, 目前第30次 hashcode :912223199test8释放了一个连接test13释放了一个连接当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0当前连接池总连接数为: 10 , 空闲连接数为:10使用中的连接数为:0

 

转载于:https://www.cnblogs.com/yeyeck/p/9532603.html

你可能感兴趣的文章
无锡物联网企业达到2000家 营业收入接近2100亿元
查看>>
2015年大数据顶尖职位必备的9项技能
查看>>
双11过后 普惠科技成阿里集团新关注点
查看>>
我国迈入物联网2.0时代 2020年市场将超过四万亿
查看>>
亚信安全提醒:APT防范要当心“水坑”
查看>>
云计算环境下的身份安全管理
查看>>
大数据和物联网:在制造业、医疗保健和智慧城市的成功应用
查看>>
《并行计算的编程模型》一3.6.2 fence和quiet:RMA操作排序
查看>>
爱奇艺龚宇:用情怀搭建VR真生态
查看>>
看我如何使用数据格式混淆来绕过WAF进行攻击?
查看>>
CentOS7搭建Hadoop + HBase + Zookeeper集群
查看>>
国行 Xbox One 遭遇两连击
查看>>
物联网将成为改变未来的新力量
查看>>
虚拟运营商三年难“转正” 电信诈骗等成了绊脚石
查看>>
数据中心扩容不可忽视的一种重要因素:承重
查看>>
一篇看完就把Vue.js融会贯通
查看>>
创业公司做数据分析(一)开篇
查看>>
网络直播被严查,机器如何帮助鉴别小黄图?
查看>>
用小米手环装逼,你不可不知的五个姿势
查看>>
海妖音乐魏清晨:科技读心术
查看>>