社区
MySQL
帖子详情
c3p0这样关闭连接是否正确
qq_29412597
2016-06-29 09:30:03
如题:自己配置了c3p0,项目结构如下:
C3p0.properties中配置了数据库和c3p0的链接数据;具体如下:
链接可以被创建
但是后期使用过程中总是报too many connection;
想请教各位大神,这是什么原因,是我的配置的原因还是我关闭链接的方式不正确
关闭方式如下:
使用方式如下:
...全文
367
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
连接
池配置需要的jar包
C3P0
连接
池是Java应用中常用的数据库
连接
池组件,它允许程序在不
关闭
物理
连接
的情况下,管理和重用数据库
连接
,从而提高了应用程序的性能和效率。
C3P0
库依赖于其他几个JAR包来实现其功能,包括`
c3p0
-0.9.2.1.jar`、`...
c3p0
连接
池jar包
C3P0
连接
池是Java开发中常用的数据库
连接
池组件,它能够有效地管理和优化数据库
连接
,提高应用程序的性能和效率。
C3P0
由Mithun Das Laskar创建,是一个开源项目,广泛应用于各种Java Web应用中。下面将详细介绍
C3P0
...
c3p0
数据库
连接
池
而使用像
c3p0
这样的
连接
池,可以在应用启动时预先创建并维护一定数量的数据库
连接
,供应用程序在需要时复用,从而提高系统的响应速度和整体性能。 **
c3p0
的核心功能和特性包括:** 1. **
连接
池管理**:
c3p0
可以...
c3p0
和HikariCP
连接
池对数据库操作
3. **自动
关闭
空闲
连接
**:
c3p0
可以通过设置空闲超时时间来释放长时间未使用的
连接
,防止资源浪费。 4. **多线程支持**:
c3p0
为多线程环境设计,可以安全地并发处理多个请求。 然而,随着技术的发展,HikariCP逐渐...
c3p0
数据源
连接
池的配置
- `
c3p0
.testConnectionOnCheckout` 和 `
c3p0
.testConnectionOnCheckin`:这两个参数控制
是否
在检查出和检查入
连接
时测试
连接
的有效性,用于预防数据库
连接
断开导致的应用异常。 除了上述基础参数外,
C3P0
还提供了...
MySQL
57,062
社区成员
56,761
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章