最近刚学到的连接池,来分享一下学习成果
第一、先连接mysql数据库(我这里使用的是mysql数据,当然小伙伴们也可以使用别的数据库)如下:
第二、把配置信息提取到文件中(这里为了对数据库进行操作)
第三、使用DataSource这个类(这里使用的是自定义连接池)重写它的方法
/** * 自定义的连接池步骤 * 一、实现DataSource接口。 * 二、实现getConnection方法。 * 三、初始化多个连接在内存中。 * 四、编写归还连接方法。 */
第四、进行测试(这里新建一个MyDataSourceDome1进行测试)
测试结果如下
自定义连接有如下问题
1、不方便程序的扩展。例如:MyDataSource myl =new MyDataSource();
2、增加使用连接池用户使用的难度。例如:myl.addBack(conn);
解决方法如下
1、使用继承模式
2、采用装饰者模式
1、新建MyConnectionWrapper.class
2、在建一个实现类(目的是为了给包装类(MyConnectionWrapper)引用)
注意:图里圈起来的方法及下面的方法都需要原封不动的调用 即 return creatStatement();
3、在原来的MyDataSource 里面添加和注释掉这两个
4、在MyDataSourceDome1里面注释掉释放资源及归还方法。
最后连接test4.release(re,stat,conn); 就是引用test4里面写好的释放资源方法。
测试结果
自定义连接池及解决方法到这里就结束了啦!谢谢各位小伙伴的访问!