项目搭建工具:idea maven java8
先看看demo结构:datasource.properties:是配置数据库连接的资源文件;poolConfig.properties是配置连接池的属性文件;

主要设计思路是:实例化一个线程安全的连接池容器,里面存放默认的连接(根据配置文件读取:maxSize,initSize,stepSize);每次用户执行CURD操作的时候先从容器中取,如果容器中没有了在根据是否达到最大连接数是否创建新的连接,容器提供创建,返还方法;
1、自定义一个连接对象ThreadConnetion.java:

2、真正的数据库连接对象:MyConnection.java:

3、连接池对象MyConnectionPool.java:


3、测试:

开启10000个线程进行测试,期间可能会遇到too many connection的问题,原因就是数据库连接没有返回连接在finally 最后一定要返回数据库连接
网友评论