博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c3p0(数据库连接池)私人学习笔记
阅读量:5092 次
发布时间:2019-06-13

本文共 3431 字,大约阅读时间需要 11 分钟。

俗话说“好记性不如烂笔头”,编程的海洋如此的浩大,养成做笔记的习惯是成功的一步!

此笔记主要是c3p0-0.9.1.2版本的笔记,并且笔记都是博主自己一字一字编写和记录,有错误的地方欢迎大家指正。


c3p0数据库池技术,Spring框架就是默认使用此数据库池技术。必须引入jar包:c3p0-0.9.1.2.jar。

1、使用方式一直接ComboPooledDataSource cbds = new ComboPooledDataSource();然后设置相应参数再获取Connection对象。(不推荐)
2、使用Properties配置文件,类似dbcp。
3、使用xml文件。也是使用ComboPooledDataSource cbds = new ComboPooledDataSource();不要再额外配置信息,直接就可以获取Connection对象。
4、使用连接池后,当获取Connection对象时,获取的不是原对象而是代理对象,Connection的close()方法也经过重写,
因此,Connection直接调用close()方法会被连接池收回资源,而并不是真正关闭Connection的链接。在使用时,应当手动调用close()方法,
可以加快连接池的回收,否则影响性能和效率。
xml文件路径跟名字已经固定(必须在src目录下建立c3p0-config.xml),default是使用的默认配置,jnb是指定使用的配置:
<c3p0-config>
    <!-- 默认配置的数据源 -->
<default-config>
   <!-- 指定数据库的驱动 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<!-- 指定数据库的连接URL -->
<property name="jdbcUrl">jdbc:mysql:///books20131012</property>  (如果不简写则是jdbc:mysql://localhost:3306/books20131012)
<!-- 指定连接的用户和密码 -->
<property name="user">root</property>
<property name="password">root</property>
<!-- 指定每次增长的连接数目 -->
<property name="acquireIncrement">5</property>
<!-- 指定初始化连接池中的连接数  -->
<property name="initialPoolSize">10</property>
<!-- 指定连接池中的最小连接数  -->
<property name="minPoolSize">5</property>
<!-- 指定连接池中的最大连接数 -->
<property name="maxPoolSize">20</property>
<!--最大空闲时间,单位为秒。1800秒内未使用则连接被丢弃,若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime" value="1800"></property>
</default-config>
  <!-- 指定名字的配置方式 -->
<named-config name="jnb"> 
   <!-- 指定数据库的驱动 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<!-- 指定数据库的连接URL -->
<property name="jdbcUrl">jdbc:mysql:///books20131012</property>
<!-- 指定连接的用户和密码 -->
<property name="user">root</property>
<property name="password">root</property>
<!-- 指定每次增长的连接数目 -->
<property name="acquireIncrement">5</property>
<!-- 指定初始化连接池中的连接数  -->
<property name="initialPoolSize">10</property>
<!-- 指定连接池中的最小连接数  -->
<property name="minPoolSize">5</property>
<!-- 指定连接池中的最大连接数 -->
<property name="maxPoolSize">20</property>
<!--最大空闲时间,单位为秒。1800秒内未使用则连接被丢弃,若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime" value="1800"></property>
</named-config>
</c3p0-config>

使用代码示例:

package cn.itcast.c3p0;import java.beans.PropertyVetoException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import com.mchange.v2.c3p0.ComboPooledDataSource;/** * 该类主要对C3P0进行学习 *  * @author NingBoJiao *  */public class C3P0Test {	//使用的是xml配置文件来获取参数。推荐使用此方法。	private static void test2() throws PropertyVetoException, SQLException {		ComboPooledDataSource cbds = new ComboPooledDataSource("jnb");		Connection conn = cbds.getConnection();		String sql = "insert into accounts (name) values ('c3p0 哈哈2')";		PreparedStatement state = conn.prepareStatement(sql);		state.execute();		state.close();		conn.close();	}			//使用的是硬编码方式,不推荐此方法。	private static void test1() throws PropertyVetoException, SQLException {		ComboPooledDataSource cbds = new ComboPooledDataSource();		cbds.setDriverClass("com.mysql.jdbc.Driver");		cbds.setJdbcUrl("jdbc:mysql:///personsystem");		cbds.setUser("root");		cbds.setPassword("root");		cbds.setInitialPoolSize(5);		cbds.setMaxPoolSize(10);		cbds.setMaxIdleTime(2);		cbds.setAcquireIncrement(5);		Connection conn = cbds.getConnection();		String sql = "insert into accounts (name) values ('c3p0')";		PreparedStatement state = conn.prepareStatement(sql);		state.execute();		state.close();		conn.close();	}}

转载于:https://www.cnblogs.com/catgwj/p/7503306.html

你可能感兴趣的文章
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
互联网模式下我们更加应该“专注”
查看>>
myeclipse集成jdk、tomcat8、maven、svn
查看>>
查询消除重复行
查看>>
Win 10 文件浏览器无法打开
查看>>
[leetcode]Minimum Path Sum
查看>>
内存管理 浅析 内存管理/内存优化技巧
查看>>
【BZOJ 5222】[Lydsy2017省队十连测]怪题
查看>>
Java跟Javac,package与import
查看>>
day-12 python实现简单线性回归和多元线性回归算法
查看>>
Json格式的字符串转换为正常显示的日期格式
查看>>
[转]使用 Razor 进行递归操作
查看>>
[转]Android xxx is not translated in yyy, zzz 的解决方法
查看>>
docker入门
查看>>
Android系统--输入系统(十一)Reader线程_简单处理
查看>>
监督学习模型分类 生成模型vs判别模型 概率模型vs非概率模型 参数模型vs非参数模型...
查看>>
Mobiscroll脚本破解,去除Trial和注册时间限制【转】
查看>>
实验五 Java网络编程及安全
查看>>