经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MySQL » 查看文章
手写数据库连接池
来源:cnblogs  作者:MeloJun  时间:2021/3/29 9:05:10  对本文有异议

本质

  1. 重写getConnection

从数据库连接池(池子链表)中获取连接,若池子中没有了,则重新创建连接(同时要判断已创建连接数是否大于预设的最大连接数)

  1. 重写释放资源

返回到数据库连接池中

  1. 池子中在用,池子中有的不是current,current是目前已经创建的连接数

接口

  1. 创建连接(create)
  2. 获取连接(get)//从连接池(池子链表)中获取conn对象
  3. 释放连接(free)//传回数据库连接池中
  4. 获取当前已创建连接数(getCurrent)

实现类

  1. 先静态代码块加载,注册驱动,初始化数据库连接池
  2. getFree:获取池子链表中的个数
  3. getCurrent:获取已经创建的连接数

优化

  1. 获取连接时判断是否有效,采用isValid(TIME_OUT),若无效则destroy之
  2. 设计最大创建连接数,getCurrent方法来获取,若已超出最大连接数则抛出异常
  3. 获取空闲连接数(getFreeConnection)
  4. 使用synchronized来防止线程冲突问题

原文链接:http://www.cnblogs.com/melojun/p/14576938.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号