JDBC连接池 —— c3p0

2024-03-04 00:18
文章标签 jdbc 连接池 c3p0

本文主要是介绍JDBC连接池 —— c3p0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


hibernate和spring使用
有自动回收空闲连接的功能.
使用步骤:
1.导入jar包(c3p0-0.9.1.2.jar)
2.使用api
a.硬编码(不推荐)
new ComboPooledDataSource()
b.配置文件
配置文件的名称:c3p0.properties 或者 c3p0-config.xml
配置文件的路径:src下

编码只需要一句话
new ComboPooledDataSource()//使用默认的配置
new ComboPooledDataSource(String configName)//使用命名的配置 若配置的名字找不到,使用默认的配置


/*** C3p0Demo.java*/
package com.datasource.c3p0;import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;import org.junit.Test;import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.utils.JdbcUtils;public class C3p0Demo {@Test// 硬解码public void f1() throws Exception {ComboPooledDataSource ds = new ComboPooledDataSource() ;// 设置基本参数ds.setDriverClass("com.mysql.jdbc.Driver") ;ds.setJdbcUrl("jdbc:mysql:///day07") ;ds.setUser("root") ;ds.setPassword("123");Connection conn = ds.getConnection() ;String sql = "insert into category values(?,?)" ;PreparedStatement st = conn.prepareStatement(sql) ;//设置参数st.setString(1, "c013");st.setString(2,"药品") ;int i = st.executeUpdate() ;System.out.println(i);JdbcUtils.closeResource(conn, st, null);}@Testpublic void f2() throws Exception {//ComboPooledDataSource ds = new ComboPooledDataSource() ;// 此处itcast就是XML配置文件中使用的数据库的类型,// 没有则使用默认的configComboPooledDataSource ds = new ComboPooledDataSource("itcast") ;Connection conn = ds.getConnection() ;String sql = "insert into category values(?,?)" ;PreparedStatement st = conn.prepareStatement(sql) ;//设置参数st.setString(1, "c114");st.setString(2,"药品_阿莫东林") ;int i = st.executeUpdate() ;System.out.println(i);JdbcUtils.closeResource(conn, st, null);}
}
/*** c3p0.properties* */
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql:///day07
c3p0.user=root
c3p0.password=123/*** c3p0-config.xml* 以后这些配置文件都是给出的不需要自己去写*/<c3p0-config>
<!-- 默认配置,如果没有指定则使用这个配置 -->
<default-config><!-- 基本配置 --><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/day07</property><property name="user">root</property><property name="password">123</property><!--扩展配置--><property name="checkoutTimeout">30000</property><property name="idleConnectionTestPeriod">30</property><property name="initialPoolSize">10</property><property name="maxIdleTime">30</property><property name="maxPoolSize">100</property><property name="minPoolSize">10</property><property name="maxStatements">200</property>
</default-config> <!-- 命名的配置 -->
<named-config name="itcast"><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/xxxx</property><property name="user">root</property><property name="password">123</property><!-- 如果池中数据连接不够时一次增长多少个 --><property name="acquireIncrement">5</property><property name="initialPoolSize">20</property><property name="minPoolSize">10</property><property name="maxPoolSize">40</property><property name="maxStatements">20</property><property name="maxStatementsPerConnection">5</property>
</named-config>
</c3p0-config> 






这篇关于JDBC连接池 —— c3p0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/771403

相关文章

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

关于Mybatis和JDBC的使用及区别

《关于Mybatis和JDBC的使用及区别》:本文主要介绍关于Mybatis和JDBC的使用及区别,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、JDBC1.1、流程1.2、优缺点2、MyBATis2.1、执行流程2.2、使用2.3、实现方式1、XML配置文件

MySQL连接池(Pool)常用方法详解

《MySQL连接池(Pool)常用方法详解》本文详细介绍了MySQL连接池的常用方法,包括创建连接池、核心方法连接对象的方法、连接池管理方法以及事务处理,同时,还提供了最佳实践和性能提示,帮助开发者构... 目录mysql 连接池 (Pool) 常用方法详解1. 创建连接池2. 核心方法2.1 pool.q

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.

MySql中的数据库连接池详解

《MySql中的数据库连接池详解》:本文主要介绍MySql中的数据库连接池方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql数据库连接池1、概念2、为什么会出现数据库连接池3、原理4、数据库连接池的提供商5、DataSource数据源6、DBCP7、C

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

Hibernate框架中,使用JDBC语法

/*** 调用存储过程* * @param PRONAME* @return*/public CallableStatement citePro(final String PRONAME){Session session = getCurrentSession();CallableStatement pro = session.doReturningWork(new ReturningWork<C

MySQL数据库连接池技术

关于数据库连接池的使用,首先我们要明白我们为什么要用它,对应普通的数据库连接操作,通常会涉及到以下一些操作是比较耗时的: 网络通讯,涉及到网络延时及协议通讯身份验证,涉及安全性检查连接合法性检查,主要是检查所连接的数据库是否存在并发控制机制构造并初始化输出缓冲区连接成功后的信息保存,日志存储服务器性能数据库配置优化系统分配内存资源等等~~~状况,导致数据库连接操作比较耗时,~~~而且每次都得花费