数据源和池化

Java 中的数据源是一种类似内存池的技术, 即一次性创建多个连接并保存在池内, 需要的时候从中获取一个连接, 用完了再放回池.

Java 定义了数据源的规范, 即 DataSource 接口:

  • DataSource 用来取代 DriverManager 来获取 Connection

  • DataSource 内部通过连接池 (Connection Pool) 来维护数据库连接

  • 从 Connection Pool 中获取的 "连接" 并不是原生的 Connection, 而是它的包装, 主要将 close 方法被修改为将 Connection 放回 Pool (而不是直接关闭 Connection)

由于 DataSource 是个接口, 所以要想使用它, 必须得先实现它, 当然已经有很多现实的实现:

  • apache: DBCP (Data Base Connection Pool)

  • mchange: c3p0

Last updated