数据库连接池
什么是数据库连接池?
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个
使用数据库连接池带来的好处
- 减少代码冗余, 不用重复得去获取数据库连接.
- 提高项目的性能, 重复的去获取连接, 销毁连接, 会占用资源.
两种常用连接池介绍
-
c3p0
-
背景介绍
c3p0的作者是一个<<星球大战>>迷, 而其中的一个机器人就叫做c3p0, 这就是c3p0连接池名称的由来.
-
使用
-
导入c3p0的jar包
-
编写配置文件
注意: 配置文件的命名规范必须为c3p0-config才能被自动解析.
<default-config> <!-- 连接参数 driverClass: 数据库驱动 jdbcUrl: 数据库地址 user: 数据库登录名 password: 数据库登录密码 initialPoolSize: 连接池初始化连接数 maxPoolSize: 连接池最大连接数 checkoutTimeout: 连接超时等待时间 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/db14</property> <property name="user">root</property> <property name="password">root</property> <!-- 连接池参数 --> <property name="initialPoolSize">5</property> <property name="maxPoolSize">10</property> <property name="checkoutTimeout">3000</property> </default-config> <!-- <named-config name="otherc3p0"> </named-config> 可以使用此标签配置多个数据库连接池 -->
-
编写java代码, 获取连接池中的连接
// 创建c3p0连接池 ComboPooledDataSource dataSource = new ComboPooledDataSource(); // 获取连接 connection = dataSource.getConnection();
-
关闭连接
// 此方法不会真的销毁连接, 而是将连接对象放会连接池中, 供其他人下次使用 connection.close();
-
-
-
druid
-
背景介绍
Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池。
-
下载地址
https://github.com/alibaba/druid
-
使用
-
导入jar包
-
配置properties文件
# driverClassName: 数据库驱动 # url: 数据库地址 # username: 数据库登录名 # password: 数据库登录密码 # initialSize: 初始化连接数 # maxActive: 最大连接数 # maxWait: 超时等待时间 driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username=root password=root initialSize=5 maxActive=10 maxWait=2000
-
java代码获取数据库连接对象
//读取配置文件 InputStream asStream = Druid.class.getResourceAsStream("/druid.properties"); //创建属性集对象 Properties properties = new Properties(); //加载配置文件 properties.load(asStream); //使用德鲁伊数据资源工厂, 创建连接池 DataSource dataSource = DruidDataSourceFactory.createDataSource(properties); //获取连接对象 Connection connection = dataSource.getConnection();
-
-