模拟封装连接池(1)

------------恢复内容开始------------

为什么要封装连接池?

    在MVC分层思想中, Model中的Dao持久层,每个方法中负责做读写数据库,在读写数据库时会使用JDBC
流程,而每次的流程都是固定的,产生了代码冗余,而在创建连接时也产生了性能低与浪费资源的问题。


1.在使用JDBC流程时发现
  执行创建连接的部分性能很慢,创建连接后,连接还需要关闭,很浪费资源

解决问题的思路
  单例模式不好,因为连接只能存在一个,(可以想象成一个连接是一座桥,想到河对岸就需要造一座桥,很多人走一座桥,肯定是不好的)
  单纯不关闭连接不好,(桥一直不拆,会留下很多桥,继而浪费很多资源,也不好)
  可以预先创建几个连接,存在集合当中,留着复用
  连接不可以同一时间被多个人使用(独木桥)
  连接正在使用如何知道?设置一个属性,用来描述是否可用的状态,但是Connection类不是我们写的,没有这个属性
  如何将一个连接与和一个属性绑定在一起?

结论
  1.需要自己单独描述一个类MyConnection,目的是为了将一个连接和一个状态绑定在一起
  2.还需要一个类ConnectionPool(集合),目的是为了管理好多连接

 

具体看代码注释!!!

 

所需包与类

 

 Test类

 

MyConnection类

 

 

ConnectionPool类

 

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

 

 

此时只解决了性能问题,后续还会继续封装

------------恢复内容结束------------

posted @ 2020-10-10 10:28  臻选优质,原生Java  阅读(65)  评论(0)    收藏  举报