c3p0:数据库连接池使用步骤(课余练习)
什么是数据库连接池?
其实就是一个容器(集合),用来存放数据库链接的容器
当系统初始化好之后,容器被创建,容器中会申请一些链接对象,当用户来访问数据库的时候,从容器中获取链接对象,用户访问完成后,会将链接对象归还给这个容器
数据库连接池的优点:
- 节约资源
- 用户访问高效
如何实现:
-
DataSource:javax.sql 包下的一个接口,数据源是一个接口,sun公司没有给定具体的实现类,谁用谁实现,具体有三种实现方式
- 基本实现 -生成标准的Connection对象(意思就是可以从这个容器中拿到Connection对象)
- 连接池实现 - 生成将自动参与连接池的Connection对象。 此实现与中间层连接池管理器配合使用。
- 分布式事务实现 - 生成可用于分布式事务的Connection对象,并且几乎总是参与连接池。 此实现与中间层事务管理器一起工作,并且几乎总是使用连接池管理器。
-
DataSource接口
-
方法:获取链接
Connection getConnection()throws SQLException
-
方法:归还链接,如果链接对象Connection是从链接池中获取的,调用close方法不会关闭资源,而是将链接对象归还到容器中去
-
-
一般我们不去实现它,由数据库厂商来实现,他们都要实现DataSource接口
c3p0
步骤:
- 导入jar包:
- c3p0-0.9.5.4.jar
- mchange-commons-java-0.2.11.jar:c3p0依赖于此包
- 定义配置文件:
- 名称:c3p0.properties或者c3p0-config.xml
- 路径:直接将文件放在src目录下即可(类路径)
- 创建核心对象 数据库连接池对象
- CombopooledDataSource
- 获取链接
- getConnection
配置文件:
<?xml version="1.0" encoding="UTF-8"?>