2021年3月26日星期五

手写数据库连接池

本质

  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.shaoqun.com/a/642737.html

跨境电商:https://www.ikjzd.com/

asiabill:https://www.ikjzd.com/w/1014

promoted:https://www.ikjzd.com/w/971


本质重写getConnection从数据库连接池(池子链表)中获取连接,若池子中没有了,则重新创建连接(同时要判断已创建连接数是否大于预设的最大连接数)重写释放资源返回到数据库连接池中池子中在用,池子中有的不是current,current是目前已经创建的连接数接口创建连接(create)获取连接(get)//从连接池(池子链表)中获取conn对象释放连接(free)//传回数据库连接池中获取当前
亚马逊全球开店:https://www.ikjzd.com/w/1299
cicpa:https://www.ikjzd.com/w/1375
3suisses:https://www.ikjzd.com/w/412
Lazada 327大促临近 平台发布活动报名指南:https://www.ikjzd.com/home/116769
口述:目睹小三视频抖胸勾引我老公小三第三者抖胸:http://lady.shaoqun.com/m/a/27012.html
个人卖家如何注册eBay?2018 eBay个人账号开店注册流程:https://www.ikjzd.com/home/8939

没有评论:

发表评论