c3p0数据库连接池的配置以及简单的工具类的实现
首先了解一下什么是C3P0
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。
C3P0是数据库连接池,我们为什么要用数据库连接池呢?
对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。
数据库连接池的基本原理是在内部对象池中维护一定数量的数据库连接,并对外暴露数据库连接获取和返回方法。
数据库连接池的优势
资源重用 、更快的系统响应速度 、新的资源分配手段 、统一的连接管理,避免数据库连接泄漏等
了解了什么是C3P0后,那么我们应该怎么使用呢?
首先我们需要几个jar包:
上面的几个jar包分别是:c3p0数据库连接池的jar包,c3p0数据库连接池的辅助jar包 以及 连接mysql数据库的jar包。分别Build Path一下。
jar包准备好之后呢,我们就可以来配置连接池啦,配置c3p0数据库连接池需要在项目src目录下创建一个c3p0-config的xml文件。编写如下:
c3p0的基本配置:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- 定义此XML文件的名字 -->
<named-config name="democ3p0">
<!-- 设置数据源的基本属性 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///jdbcdemo20190804</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 连接池的高级配置 -->
<!-- 若数据库连接不够时,一次向数据库中请求多少个连接 -->
<property name="acquireIncrement">5</property>
<!-- 初始化数据库连接池时的连接数量 -->
<property name="initialPoolSize">5</property>
<!-- 数据库连接池中最小的数据库连接数 -->
<property name="minPoolSize">5</property>
<!-- 数据库连接池中最大的数据库连接数 -->
<property name="maxPoolSize">10</property>
<!-- C3P0数据库连接池中可以维护的Statement的个数 -->
<property name="maxStatements