百木园-与人分享,
就是让自己快乐。

手写数据库连接池

本质

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

  • 重写释放资源
  • 返回到数据库连接池中

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

  • 创建连接(create)
  • 获取连接(get)//从连接池(池子链表)中获取conn对象
  • 释放连接(free)//传回数据库连接池中
  • 获取当前已创建连接数(getCurrent)
  • 实现类

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

  • 获取连接时判断是否有效,采用isValid(TIME_OUT),若无效则destroy之
  • 设计最大创建连接数,getCurrent方法来获取,若已超出最大连接数则抛出异常
  • 获取空闲连接数(getFreeConnection)
  • 使用synchronized来防止线程冲突问题
  • 来源:https://www.cnblogs.com/melojun/p/14576938.html
    图文来源于网络,如有侵权请联系删除。

    未经允许不得转载:百木园 » 手写数据库连接池

    相关推荐

    • 暂无文章