c3p0这样关闭连接是否正确

qq_29412597 2016-06-29 09:30:03
如题:自己配置了c3p0,项目结构如下:

C3p0.properties中配置了数据库和c3p0的链接数据;具体如下:

链接可以被创建

但是后期使用过程中总是报too many connection;
想请教各位大神,这是什么原因,是我的配置的原因还是我关闭链接的方式不正确
关闭方式如下:

使用方式如下:
...全文
353 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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; } }

56,912

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧