模拟封装连接池(1)
------------恢复内容开始------------
为什么要封装连接池?
在MVC分层思想中, Model中的Dao持久层,每个方法中负责做读写数据库,在读写数据库时会使用JDBC
流程,而每次的流程都是固定的,产生了代码冗余,而在创建连接时也产生了性能低与浪费资源的问题。
1.在使用JDBC流程时发现
执行创建连接的部分性能很慢,创建连接后,连接还需要关闭,很浪费资源
解决问题的思路
单例模式不好,因为连接只能存在一个,(可以想象成一个连接是一座桥,想到河对岸就需要造一座桥,很多人走一座桥,肯定是不好的)
单纯不关闭连接不好,(桥一直不拆,会留下很多桥,继而浪费很多资源,也不好)
可以预先创建几个连接,存在集合当中,留着复用
连接不可以同一时间被多个人使用(独木桥)
连接正在使用如何知道?设置一个属性,用来描述是否可用的状态,但是Connection类不是我们写的,没有这个属性
如何将一个连接与和一个属性绑定在一起?
结论
1.需要自己单独描述一个类MyConnection,目的是为了将一个连接和一个状态绑定在一起
2.还需要一个类ConnectionPool(集合),目的是为了管理好多连接
具体看代码注释!!!
所需包与类

Test类




MyConnection类


ConnectionPool类

最终结果 初次加载,往连接池内存了10个连接,加载时间慢,当后续再需要连接时,从连接池内取已加载好的连接,所以消耗时间大大减少!

此时只解决了性能问题,后续还会继续封装
------------恢复内容结束------------

浙公网安备 33010602011771号