c3p0数据库连接池的使用详解
2016-09-03 11:51
387 查看
c3p0数据库连接池的使用详解
首先,什么是c3p0?下面是百度百科的解释:C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring
使用连接池和我们平时写的JDBC代码相比较有什么优点呢?
资源重用:
由于数据库连接得以重用,避免了频繁创建,释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增加了系统运行环境的平稳性。
更快的系统反应速度:
数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于连接池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而减少了系统的响应时间。
新的资源分配手段:
对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接池的配置,实现某一应用最大可用数据库连接数的限制,避免某一应用独占所有的数据库资源。
统一的连接管理,避免数据库连接泄露:
在较为完善的数据库连接池实现中,可根据预先的占用超时设定,强制回收被占用连接,从而避免了常规数据库连接操作中可能出现的资源泄露。
如何在自己的项目中使用c3p0呢?
导jar包:
两种方式可以建立c3p0连接,第一种方式是代码方式,Demo如下:
package com.wang.utils; import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.mchange.v2.c3p0.ComboPooledDataSource; public class JDBCutils { private static Connection conn; private sta 16a46 tic ComboPooledDataSource ds = new ComboPooledDataSource(); public static Connection getConnection() { try { ds.setDriverClass("com.mysql.jdbc.Driver"); ds.setJdbcUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8&useServerPrepStmts=true&prepStmtCacheSqlLimit=256&cachePrepStmts=true&prepStmtCacheSize=256&rewriteBatchedStatements=true"); ds.setUser("root"); ds.setPassword("123"); conn = ds.getConnection(); } catch (SQLException e) { e.printStackTrace(); } catch (PropertyVetoException e) { e.printStackTrace(); } return conn; }
第二种是使用读取配置文件的方式,要求是,配置文件必须命名为c3p0-config.xml,并且放在src目录下,配置文件如下:
按 Ctrl+C 复制代码
按 Ctrl+C 复制代码
java代码部分:
package com.wang.utils; import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.mchange.v2.c3p0.ComboPooledDataSource; public class JDBCutils { private static Connection conn; private static ComboPooledDataSource ds = new ComboPooledDataSource(); public static Connection getConnection() { try { conn = ds.getConnection(); } catch (SQLException e) { e.printStackTrace(); } catch (PropertyVetoException e) { e.printStackTrace(); } return conn; }
注意,配置文件里可以写多个数据库配置,上面的配置文件代码,我们是放在default-config标签下,可以再添加一个用<named-config name="mysqlConfig">标签修饰的配置,只需要在代码中,将name的值,放在new ComboPooledDataSource("mysqlConfig")中即可,
标签: java, jdbc, c3p0
好文要顶 关注我 收藏该文
醉眼识朦胧
关注 - 7
粉丝 - 31
+加关注
0
0
« 上一篇:struts2学习笔记--struts.xml配置文件详解
» 下一篇:struts2学习笔记--总结获取servletAPI的几种方式
posted @ 2016-02-06 21:20 醉眼识朦胧 阅读(884)
评论(2) 编辑 收藏
评论列表
#1楼 2016-02-10
11:16 规格严格-功夫到家
学习了~
支持(0)反对(0)
#2楼 2016-02-26
02:35 platycoden
之前项目用了一阵子c3p0总是莫名其妙的崩,不知道博主遇到过这种情况没
支持(0)反对(0)
刷新评论刷新页面返回顶部
注册用户登录后才能发表评论,请 登录 或 注册,访问网站首页。
【推荐】50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
【推荐】带SSD固态硬盘和电池的随身看片路由器开卖了
【推荐】移动直播百强八成都在用融云即时通讯云
【推荐】报表开发有捷径:快速设计轻松集成,数据可视化和交互
【推荐】网易云信-一天开发一个微信,独创1对1技术顾问让开发加速
最新IT新闻:
· 谷歌地图首任产品负责人:为什么更好的产品不一定更成功
· 未来已来 微软Hololens全息眼镜开箱图赏
· 三星电子中国区首次回应电池爆炸事件:中国市场没有使用问题电池
· 除了58同城,传言这些互联网公司最爱“996”
· Apache OpenOffice讨论是否关闭
» 更多新闻...
最新知识库文章:
· 程序猿媳妇儿注意事项
· 可是姑娘,你为什么要编程呢?
· 知其所以然(以算法学习为例)
· 如何给变量取个简短且无歧义的名字
· 编程的智慧
» 更多知识库文章...
昵称:醉眼识朦胧
园龄:8个月
粉丝:31
关注:7
+加关注
| ||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|---|---|---|---|---|---|
28 | 29 | 30 | 31 | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
我的评论
我的参与
最新评论
我的标签
1. MyBatis基础入门--知识点总结
2. springMVC学习笔记--知识点总结1
3. springMVC初探--环境搭建和第一个HelloWorld简单项目
4. Oracle学习之路-- 案例分析实现行列转换的几种方式
5. 数据结构笔记--二叉查找树概述以及java代码实现
6. 数据结构笔记--栈的总结及java数组实现简单栈结构
7. 深入理解java中的ArrayList和LinkedList
8. 设计模式--观察者模式初探和java Observable模式
9. java笔记--理解java类加载器以及ClassLoader类
10. MySQL笔记---视图,存储过程, 触发器的使用入门
hibernate(25)
java(25)
struts2(18)
spring(13)
servlet(11)
jsp(9)
线程(7)
计算机网络(6)
jdbc(4)
request(3)
更多
学习笔记(16)
2016年7月 (4)
2016年5月 (6)
2016年4月 (14)
2016年3月 (39)
2016年2月 (20)
2016年1月 (13)
2015年9月 (1)
1. Re:Struts2环境下Tomcat启动异常:Exception starting filter struts2,报了一个java.lang.ClassNotFoundException
怒赞啊,搞了一上午都没搞好,看了你的博文终于弄好了,谢谢
--_Sodifficult
2. Re:MyBatis基础入门--知识点总结
mybatis和hibernate最烦人的是配置。。。得有生成器批量,手写几乎是不可能做项目的。
--路过秋天
3. Re:Oracle学习之路-- 案例分析实现行列转换的几种方式
楼主你好,我来提供另一种行列转换方法:
powershell+excel的com对象。我试验过6000x6000没问题,很快。再大的话。要大内存好cpu。
--PowerShell免费软件
4. Re:MySQL笔记---视图,存储过程, 触发器的使用入门
学习了
--合肥大屌怪
5. Re:计算机网络学习笔记--数据链据层之MAC子层(整理)
没写应用层吗
--纸窗招魂·貌之不配
1. 计算机网络学习笔记--传输层知识总结(1116)
2. c3p0数据库连接池的使用详解(885)
3. java多线程--定时器Timer的使用(569)
4. spring笔记--使用springAPI以及自定义类 实现AOP的一个例子(458)
5. 计算机网络学习笔记--网络层知识点整理(360)
1. 计算机网络学习笔记--传输层知识总结(3)
2. 深入理解Spring--动手实现一个简单的SpringIOC容器(2)
3. Java基础--反射机制的知识点梳理(2)
4. c3p0数据库连接池的使用详解(2)
5. spring笔记--使用springAPI以及自定义类 实现AOP的一个例子(1)
1. spring笔记--使用springAPI以及自定义类 实现AOP的一个例子(2)
2. 深入理解java中的ArrayList和LinkedList(2)
3. 深入理解Spring--动手实现一个简单的SpringIOC容器(2)
4. 计算机网络学习笔记--传输层知识总结(2)
5. java多线程--几个多线程面试题小结(2)
Copyright ©2016 醉眼识朦胧
相关文章推荐
- c3p0数据库连接池的使用详解
- c3p0数据库连接池的使用详解
- c3p0数据库连接池的使用详解
- 详解springboot 使用c3p0数据库连接池的方法
- springboot 使用c3p0数据库连接池
- 数据库连接池 dbcp与c3p0的使用区别
- jdbc连接池中c3p0的配置文件的详解以及在在java中如何使用
- c3p0数据库连接池的简单使用
- 关于数据库连接池c3p0的使用方法
- 数据库连接池的作用及c3p0的详解
- java 使用c3p0数据库连接池配置实例
- springboot 使用c3p0数据库连接池的方法
- 数据库连接池活尿泥模拟及c3p0的使用
- 数据库连接池(数据源)2: 开源数据源的使用DBCP和C3P0
- c3p0数据库连接池的使用
- JDBC_数据库连接池(二) DNCP与C3P0的使用方法及代码演示
- Java Web中使用数据库连接池proxool配置详解
- java 数据库连接池 c3p0 使用及参数详解,支持重连
- Druid数据库连接池的使用和详解
- C3P0数据库连接池使用