1. 数据库连接池
1.1 概念
数据库连接池就是一个存放数据库连接的容器,当系统初始化好后,容器被创建,容器中会申请一些连接对象。当用户来访问数据库时,从容器中获取连接对象,用户访问完之后就会将连接对象归还给容器,而不会自行释放连接所拥有的系统资源。
使用数据库连接池的好处是节约资源,以及使得用户的访问更加高效。
1.2 实现
创建数据库连接池需要实现Java中的标准接口javax.sql.DataSource,方法为:
getConnection():获取连接Connection.close():归还连接,如果连接对象是从连接池中获取的,那么调用Connection.close()不会再关闭连接,而是执行归还连接操作
2. 连接池实现
虽然可以通过实现DataSource接口来自定义实现数据库连接池,但更多的情况是直接使用开源的连接池。常用的第三方数据库连接池有DBCP、C3P0、DbUtils和Druid等。
2.1 DBCP
2.2 C3P0
package JDBC.ConnectionPools;import com.mchange.v2.c3p0.ComboPooledDataSource;import java.sql.Connection;public class C3P0 {public static void main(String[] args) throws Exception {ComboPooledDataSource dataSource = new ComboPooledDataSource();dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/sql_store" +"?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT&allowPublicKeyRetrieval=true");dataSource.setUser("root");dataSource.setPassword("120809");final Connection connection = dataSource.getConnection();System.out.println(connection);}}
