1. 数据库连接池
1.1 连接池介绍
1.1.1 什么是连接池
实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采用连接池技术,来共享连接Connection。
这样我们就不需要每次都创建连接、释放连接了,这些操作都交给了连接池.
1.1.2 连接池的好处
- 用池来管理Connection,这样可以重复使用Connection。 当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection“归还”给池。
1.2 JDBC方式与连接池方式
普通 JDBC方式
连接池方式
1.3 如何使用数据库连接池
Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口。 这样应用程序可以方便的切换不同厂商的连接池!
常见的连接池有 DBCP连接池, C3P0连接池, Druid连接池。
1.4 数据准备
1.5 DBCP连接池
- DBCP也是一个开源的连接池,是Apache成员之一,在企业开发中也比较常见,tomcat内置的连接池。
1.5.1 创建项目导入jar包
- 1)将这两个 jar包添加到 myJar文件夹中 (jar包在资料里的软件文件夹中)
- 2)添加myJar库 到项目的依赖中
1.5.2 编写工具类
- 连接数据库表的工具类, 采用DBCP连接池的方式来完成
Java中提供了一个连接池的规则接口 :DataSource, 它是java中提供的连接池
在DBCP包中提供了DataSource接口的实现类,我们要用的具体的连接池类
- 代码示例
1.5.3 常见配置项
属性 | 描述 |
driverClassName | 数据库驱动名称 |
url | 数据库地址 |
username | 用户名 |
password | 密码 |
maxActive | 最大连接数量 |
maxIdle | 最大空闲连接 |
minIdle | 最小空闲连接 |
initialSize | 初始化连接 |
1.6 C3P0连接池
- C3P0是一个开源的JDBC连接池,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。
1.6.1 导入jar包及配置文件
- 将jar包 复制到myJar文件夹即可,IDEA会自动导入
- c3p0-config.xml 文件名不可更改
- 直接放到src下,也可以放到到资源文件夹中
- 在项目下创建一个resource文件夹(专门存放资源文件)
- 选择文件夹,右键 将resource文件夹指定为资源文件夹
- 将文件放在resource目录下即可,创建连接池对象的时候会去加载这个配置文件
1.6.2 编写C3P0工具类
C3P0提供的核心工具类,ComboPooledDataSource, 如果想使用连接池,就必须创建该类的对象
- new ComboPooledDataSource(); 使用 默认配置
- new ComboPooledDataSource("mysql"); 使用命名配置
1.6.3 常见配置
1.7 Druid连接池
- Druid(德鲁伊)是阿里巴巴开发的号称为监控而生的数据库连接池,Druid是目前最好的数据库连接池。在功能、性能、扩展性方面,都超过其他数据库连接池,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况。
1.7.1 导入jar包及配置文件
- 导入 jar包
- 是properties形式的
- 可以叫任意名称,可以放在任意目录下,我们统一放到 resources资源目录
1.7.2 编写Druid工具类
- 获取数据库连接池对象
通过工厂来来获取 DruidDataSourceFactory类的createDataSource方法
createDataSource(Properties p) 方法参数可以是一个属性集对象