在 JDBC 的实现过程中,最消耗资源的从来不是执行 SQL 之类的过程,而是获取-释放 数据库连接 Connection 的过程。

之前通过 DriverManager 获得的数据库连接对象,每一个 Connection 对应一个物理连接。

每一次操作都会打开一个物理连接,操作结束释放连接,这回造成极大的性能问题。

为了解决这个问题,JDBC 引入了数据源(数据库连接池+连接池管理)的概念,也就是 DataSource 接口。

DataSource 在系统启动时,建立了足够多的 Connection,这些 Connection 组成了一个连接池。

每一次程序请求数据库连接,就从连接池中取出已有的连接,使用完毕之后不关闭 Connection,而是将 Connection 归还给连接池。

DataSource 的本质就是一个工厂,用来管理 Connection。

DataSource 的常用参数有:

  • 数据库初始连接数
  • 连接池最大连接数
  • 连接池最小连接数
  • 连接池每次增加容量

DataSource 只是一个接口,具体的实现由数据库厂商和一些开源组织开发,比较著名的有:

  • DBCP 数据源(Tomcat)
  • C3P0 数据源(Hibernate)

最新文章

  1. CTP程序化系统开发(C++ && PHP)
  2. Java基础之反射和动态代理
  3. 远程调试 ASP.NET MVC 项目
  4. Java IO4:字符编码
  5. mvc view-controller mvc annotation-driven
  6. OpenGL cubeMap
  7. access_ok()
  8. spring boot项目发布tomcat容器(包含发布到tomcat6的方法)
  9. 如何搭建自己的Maven远程私仓
  10. mysql别名的使用
  11. css半透明边框
  12. Zabbix 3.2.4至3.2.7的升级方案
  13. Flutter获取屏幕宽高和Widget大小
  14. June 18. 2018, Week 25th. Monday
  15. (后端)Java跨域过滤器
  16. sap 查看自己代码的结构
  17. asp.net query string 及 form data 遇到的编码问题
  18. <label>标签引起的Firefox焦点问题
  19. 超简单!80行代码实现Google日历(拖放、移动、AJAX)
  20. JS与Jquery的事件委托

热门文章

  1. 分析ELF的加载过程
  2. php 获取开始日期与结束日期之间所有月份
  3. ASP.NET Core模块化前后端分离快速开发框架介绍之3、数据访问模块介绍
  4. 4-8 string
  5. SpringBoot日志输出至Logstash
  6. 基于django的个人博客网站建立(一)
  7. L1-043 阅览室 (20 分)
  8. open()函数之文件操作
  9. Java集合---List、Set、Iterator、Map简介
  10. Python虚拟机类机制之自定义class(四)