社区
MySQL
帖子详情
c3p0这样关闭连接是否正确
qq_29412597
2016-06-29 09:30:03
如题:自己配置了c3p0,项目结构如下:
C3p0.properties中配置了数据库和c3p0的链接数据;具体如下:
链接可以被创建
但是后期使用过程中总是报too many connection;
想请教各位大神,这是什么原因,是我的配置的原因还是我关闭链接的方式不正确
关闭方式如下:
使用方式如下:
...全文
394
2
打赏
收藏
c3p0这样关闭连接是否正确
如题:自己配置了c3p0,项目结构如下: C3p0.properties中配置了数据库和c3p0的链接数据;具体如下: 链接可以被创建 但是后期使用过程中总是报too many connection; 想请教各位大神,这是什么原因,是我的配置的原因还是我关闭链接的方式不正确 关闭方式如下: 使用方式如下:
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq_29412597
2016-06-29
打赏
举报
回复
另外我将dbUti类设置成单例模式,这样有问题吗? private dbUtil() { } private static final dbUtil db = new dbUtil(); // 静态工厂方法 public static dbUtil getdb() { return db; }
qq_29412597
2016-06-29
打赏
举报
回复
C3P0ConnentionProvider类是一个c3p0初始化类;代码如下 package com.cn.piaoju.db.util; /** * 初始化c3p0 */ import java.io.FileInputStream; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; import javax.sql.DataSource; import com.mchange.v2.c3p0.DataSources; public class C3P0ConnentionProvider { private static final String JDBC_DRIVER = "driverClass"; private static final String JDBC_URL = "jdbcUrl"; private static DataSource ds; /** * 初始化连接池代码块 */ static { initDBSource(); } /** * 初始化c3p0连接池 */ private static final void initDBSource() { Properties c3p0Pro = new Properties(); try { // 加载配置文件 String path = C3P0ConnentionProvider.class.getResource("/") .getPath(); String websiteURL = (path.replace("/build/classes", "") .replace("%20", " ").replace("classes/", "") + "c3p0.properties") .replaceFirst("/", ""); FileInputStream in = new FileInputStream(websiteURL); c3p0Pro.load(in); } catch (Exception e) { e.printStackTrace(); } String drverClass = c3p0Pro.getProperty(JDBC_DRIVER); if (drverClass != null) { try { // 加载驱动类 Class.forName(drverClass); } catch (ClassNotFoundException e) { e.printStackTrace(); } } Properties jdbcpropes = new Properties(); Properties c3propes = new Properties(); for (Object key : c3p0Pro.keySet()) { String skey = (String) key; if (skey.startsWith("c3p0.")) { c3propes.put(skey, c3p0Pro.getProperty(skey)); } else { jdbcpropes.put(skey, c3p0Pro.getProperty(skey)); } } try { // 建立连接池 DataSource unPooled = DataSources.unpooledDataSource( c3p0Pro.getProperty(JDBC_URL), jdbcpropes); ds = DataSources.pooledDataSource(unPooled, c3propes); } catch (SQLException e) { e.printStackTrace(); } } /** * 获取数据库连接对象 * * @return 数据连接对象 * @throws SQLException */ public static synchronized Connection getConnection() throws SQLException { final Connection conn = ds.getConnection(); conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); return conn; } }
c3p0
数据库
连接
池如何
正确
的
关闭
资源(“too many connections”的解决办法)
一.问题分析 关于
c3p0
数据库
连接
池的资源的
关闭
是一个很重要的问题,但是资源的
关闭
不仅仅是只调用close()方法,将链接放入池中那么简单,如果你不考虑数据源DataSource的
关闭
,那么你的Demo将在很少的数据库交互之后报出“too many connections”。下面先看这样一些代码(注:测试程序我也就不按照
正确
的开发模式写代码了): CreateConnection.java(...
Java
C3P0
连接
池
最近有用到
C3P0
连接
池。就写点在这
c3p0
连接
池链接为
关闭
引起的tomcat启动问题
spring struts2 beans A
C3P0
Registry mbean is already registered com.mchang.v2.resourcepool.basicResourcepool$AcquireTask@606af5c2 - -Acquisition Attempt Faild!!! Clearing pending.... java.sql.SQLException: Accessdenied for user 'anqi'@'localhost'(using p
java
连接
池
C3P0
参考梦阑的博客,网址:https://blog.csdn.net/qq_33356083/article/details/80300311
连接
池的
连接
,最后一定要释放,即conn.close(); //此释放为释放到
连接
池中,假的释放。 如不释放,则当需要很多
连接
时,则会出现无
连接
可用的问题,所以一定要conn.close(); (
连接
池也需要conn.close()) 需要包...
自己在使用
c3p0
时候遇到的问题
c3p0
,一个开源的数据库
连接
池。 百度简介是这样描述的:
C3P0
是一个开源的JDBC
连接
池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。 官方文档:http://www.mchange.com/projects/
c3p0
/ 网上API:http://www.mchange.com/projects/c3p
MySQL
57,064
社区成员
56,761
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章