1、连接池是什么?有什么用?
连接池就是一个容器,用于装入多个connection对象,在使用连接池对象时,从容器中获取一个connection对象,使用完成后,再将这个connection对象装入到容器中。这个容器就是连接池。(DataSource),也叫做数据源。
我们可以通过连接池获取connection对象。
优点:
节省创建连接和释放连接的性能消耗,连接池中连接起到重复利用的作用,提高程序性能。
注意:
Connection对象,如果是从连接池中获取的,那么它的close方法的行为已经改变了,不再是销毁而是重新装入到连接池中。
1、连接池必须实现javax.sql.DataSource接口。
2、要通过连接池获取连接对象,DataSource接口中有一个getConnection()方法。
3、将Connection重新装入到连接池,使用Connection的close方法。
c3p0连接池 是一个开源的JDBC连接池。c3p0连接池有自动回收空闲连接的功能。
用法:
1、导包
2、
手动:
CombopooledDataSource cpds = new CombopooledDataSource();
cpds.setDriverClass("com.mysql.jdbc.Driver");
cpds.setUser("root");
cpds.setPassword("root");
cpds.setJdbcUrl("jdbc:mysql://localhost:3306/jdbc");
自动(使用配置文件):
c3p0的配置文件可以是properties也可以是xml文件
c3p0的配置文件名称如果是c3p0.properties 或 c3p0-config.xml 并且部署在classpath下(对于web应用就是classes目录),那么c3p0会自动查找。
注意:平时只需要将配置文件放置在src下就可以了。
c3p0-config.xml配置方式
<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
<default-config>
<property name="user">root</property>
<property name="password">root</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc</property>
</default-config>
</c3p0-config>
c3p0.properties配置方式
1、 c3p0.driverClass=com.mysql.jdbc.Driver
2、 c3p0.jdbcUrl=jdbc:mysql://localhost:3306/jdbc
3、 c3p0.user=root
4、 c3p0.password=root
使用: CombopoolesDataSource cpsd = new CombopooledDataSource();
它会在指定的目录下查找指定名称的配置文件,并将其内容加载。