数据库连接池-c3p0-基本使用
步骤:
导入jar包 (3个) c3p0-0.9.5.2.jar mchange-commons-java-0.2.11.jar mysql-connector-java-5.1.47.jar
定义配置文件:
名称:c3p0.properties或者c3p0-config.xml
路径:直接将文件放在src目录下即可
创建核心对象 数据库连接池对象 ComboPooledDataSource
获取连接:getConnection
打印输出
在src下创建xml
<c3p0-config> <!-- 使用默认的配置读取连接池对象--> <default-config> <!-- 连接参数--> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/db4</property> <property name="user">root</property> <property name="password">root</property> <!-- 连接池参数--> <!-- 初始化申请的连接数量--> <property name="initialPoolSize">5</property> <!-- 最大的连接数量--> <property name="maxPoolSize">10</property> <!-- 超时时间--> <property name="checkoutTimout">3000</property> </default-config> <named-config name="otherc3p0"> <!-- 连接参数--> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/db4</property> <property name="user">root</property> <property name="password">root</property> <!-- 连接池参数--> <!-- 初始化申请的连接数量--> <property name="initialPoolSize">5</property> <!-- 最大的连接数量--> <property name="maxPoolSize">8</property> <!-- 超时时间--> <property name="checkoutTimout">1000</property> </named-config> </c3p0-config>
创建c3p0Demo类
public static void main(String[] args) throws SQLException { /** * 创建数据库连接池对象 */ ComboPooledDataSource ds = new ComboPooledDataSource(); /** * 获取连接对象 */ Connection connection = ds.getConnection(); /** * 打印 */ System.out.println(connection); }
数据库连接池-c3p0-配置演示
在xml中设置的连接对象不能超过十个,超过会报错,有一个方法可以解决这个问题
public static void main(String[] args) throws SQLException { /** * 创建数据库连接池对象 */ ComboPooledDataSource ds = new ComboPooledDataSource(); /** * 获取连接对象 */ for (int i = 1; i <=11 ; i++) { Connection connection = ds.getConnection(); System.out.println(i+":"+connection); if (i == 5){ connection.close();//归还连接到连接池中 } } }
可以看到第五个和第七个租后的连接名一样,因为咱们在代码中写到 ==5 之后就返回到连接池对象。就是第五个数用完之后就归还给连接池对象,然后第七个数又用到了。这样即可
在配置文件中有两个参数,一个是默认的,一个是自己添加的,上面演示的是默认的,现在演示一下自己添加的
只有8个连接对象
可以看到,咱们设置的是获取十次连接对象,这个获取到8次之后就不会在获取了。
以后咱们一般只会用到默认的,这个只是演示一下
标签:演示,对象,数据库,c3p0,ComboPooledDataSource,mysql,连接池 From: https://www.cnblogs.com/yuzong/p/16801676.html