c3p0数据库连接池管理
之前已经讲过dbcp可以用于数据库连接池进行管理。另一种技术c3p0也可以用于数据库连接池管理,其中Spring等框架都是基于c3p0技术进行数据库连接池管理的。
使用之前需要引入 c3p0-0.9.5.2.jar 和 mchange-commons-java-0.2.11.jar 包,主要的类是ComboPooledDataSource,也有两种方式进行设置。一种是代码中进行设置,一种是在配置文件中设置。主要区别就是这种方式只有一个主要类ComboPooledDataSource。
他们之间可能方法名有所不同,但是功能是一样的。
1)在代码中进行配置,代码如下
ComboPooledDataSource dataSource = new ComboPooledDataSource();
try {
dataSource.setJdbcUrl("jdbc:mysql:///mydb?useSSL=true");
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setUser("root");
dataSource.setPassword("");
dataSource.setMaxIdleTime();
dataSource.setMaxPoolSize();
dataSource.setInitialPoolSize();
Connection conn = dataSource.getConnection();
String sql = "select * from user where id=?";
QueryRunner qr = new QueryRunner();
User user = qr.query(conn, sql, new BeanHandler<User>(User.class), );
System.out.println(user);
dataSource.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2) 在配置文件中进行设置
注意:配置文件命名是 c3p0-config.xml。系统默认回去 CLASSPATH、WEB-INF/classes文件夹中搜索配置文件,所以把他放在 src 目录下即可。
ComboPooledDataSource dataSource = new ComboPooledDataSource("mysql_config"); //使用指定配置名的配置
try {
Connection conn = dataSource.getConnection();
String sql = "select * from user where id=?";
QueryRunner qr = new QueryRunner();
User user = qr.query(conn, sql, new BeanHandler<User>(User.class), );
System.out.println(user);
dataSource.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
配置文件中可以进行设置的参数如下:
配置文件样例如下
<c3p0-config>
<default-config>
<property name="checkoutTimeout"></property>
<property name="idleConnectionTestPeriod"></property>
<property name="initialPoolSize"></property>
<property name="maxIdleTime"></property>
<property name="maxPoolSize"></property>
<property name="minPoolSize"></property> <user-overrides user="test-user">
<property name="maxPoolSize"></property>
<property name="minPoolSize"></property>
<property name="maxStatements"></property>
</user-overrides> </default-config>
<named-config name="mysql_config">
<property name="initialPoolSize"></property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb?useSSL=true</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="maxPoolSize"></property>
<property name="initialPoolSize"></property>
<property name="maxIdleTime"></property>
<property name="password"></property>
<property name="user">root</property> </named-config> </c3p0-config>
c3p0数据库连接池管理的更多相关文章
- 【Java EE 学习 16 上】【dbcp数据库连接池】【c3p0数据库连接池】
一.回顾之前使用的动态代理的方式实现的数据库连接池: 代码: package day16.utils; import java.io.IOException; import java.lang.ref ...
- C3P0数据库连接池使用方法
一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
- paip.c3p0 数据库连接池 NullPointerException 的解决...
paip.c3p0 数据库连接池 NullPointerException 的解决... 程序ide里面运行正常..外面bat运行错误.. 作者Attilax 艾龙, EMAIL:14665198 ...
- paip.提升稳定性---c3p0数据库连接池不能取到连接An attempt by a client to checkout a Connection has timed out
paip.提升稳定性---c3p0数据库连接池不能取到连接An attempt by a client to checkout a Connection has timed out 作者Attilax ...
- [原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- c3p0数据库连接池(作用不重复)
/* * c3p0数据库连接池: * 只被初始化一次 * connection对象进行close时,不是正的关闭,而是将该数据连接归还给数据库连接池 * * */ 四个架包 mysql-connect ...
- springboot 使用c3p0数据库连接池
springboot 使用c3p0数据库连接池的方法 本文转自:http://www.cnblogs.com/xiaosiyuan/p/6255292.html 使用springboot开发时,默认 ...
- c3p0 数据库连接池相关知识
c3p0数据库连接池的配置文件放在eclipse的src目录下,代码就可以识别. c3p0的配置文件的内容如下: <!-- Uncomment and set any of the option ...
- c3p0数据库连接池无法连接数据库—错误使用了username关键字
一.问题描述 上篇博客说到了关于maven无法下载依赖jar包的问题,这篇博客再说一下关于在本个项目中遇到的关于使用C3P0连接池连接数据库的问题,真心很奇葩,在此,也请大家引起注意.首先看我的项目基 ...
随机推荐
- Entity Framework 6 vs NHibernate 4
This article is dedicated to discussing the latest releases of the NHibernate and Entity Framework. ...
- u-boot懂你并不难
转载:http://blog.chinaunix.net/uid-28236237-id-3865045.html u-boot第一阶段分析(一) u-boot 第一阶段分析(二) u-boot 第二 ...
- .jar包文件的生成与运行
首先你得线配置好你的JRE,否则下面的都不会有作用,还没有配置的,请百度上搜索一下如何配置.这里我就不多讲了. jar包是一个可执行的文件包,简单说jar包就是一个外包.Java 程序是由若干个 .c ...
- Ext树形结构
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- Mac通过wifi连接 Android设备
公司用的全是mac开发,但是全是type-C接口,每次背电脑回家啊,还得带个数据线转换器…… 想着回来,直接通过Wi-Fi连接手机就好,发现完全忘了之前套路,现在赶紧记下一波,保证包教包会! STEP ...
- 数据库 DB MySQL 基本操作 CRUD 多表 MD
操作数据库 创建数据库:create 创建一个名称为mydb1的数据库 create database mydb1; 创建一个使用gbk字符集的mydb2数据库 create database myd ...
- Java import javax.servlet 出错
Error: The import javax.servlet cannot be resolved The import javax.servlet.http.HttpServletRequest ...
- 谷歌浏览器开发调试工具中Sources面板 js调试等 完全介绍
这次分享的是Chrome开发工具中最有用的面板Sources. Sources面板几乎是我最常用到的Chrome功能面板,也是在我看来决解一般问题的主要功能面板.通常只要是开发遇到了js报错或者其他代 ...
- 根据WSDL文件生成代理类
D:\Program Files\Microsoft Visual Studio 10.0\VC>wsdl /l:c# /n:cmsserver /out:E:\ospsoft\Trave ...
- 转:如何转换Android打包用jks格式keystore证书为Air用pkcs12格式p12证书
转自:http://blog.k-res.net/archives/1539.html 如何转换Android打包用jks格式keystore证书为Air用pkcs12格式p12证书 六月 11, 2 ...