C3P0数据库连接池源代码
步骤如下:
导入c3p0-0.9.1.2.jar
1. 创建 c3p0-config.xml 文件,
2. 创建 ComboPooledDataSource 实例;
DataSource dataSource =new ComboPooledDataSource("helloc3p0");
3. 从 DataSource 实例中获取数据库连接.
第一种方法:不使用工具类
package tan.com;import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.junit.Test;import com.mchange.v2.c3p0.ComboPooledDataSource;
public class TestJDBC {/**如何使用c3p0?* 1. 创建 c3p0-config.xml 文件, * 2. 创建 ComboPooledDataSource 实例;* DataSource dataSource =new ComboPooledDataSource("helloc3p0"); * 3. 从 DataSource 实例中获取数据库连接. */@Testpublic void testC3poWithConfigFile() throws Exception{DataSource dataSource = new ComboPooledDataSource("helloc3p0"); System.out.println(dataSource.getConnection()); //获取数据库连接池最大连接数ComboPooledDataSource comboPooledDataSource = (ComboPooledDataSource) dataSource;System.out.println(comboPooledDataSource.getMaxStatements()); }
配置c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config><named-config name="helloc3p0"><!-- 指定连接数据源的基本属性 --><property name="user">root</property><property name="password">1234</property><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql:///tan</property><!-- 若数据库中连接数不足时, 一次向数据库服务器申请多少个连接 --><property name="acquireIncrement">5</property><!-- 初始化数据库连接池时连接的数量 --><property name="initialPoolSize">5</property><!-- 数据库连接池中的最小的数据库连接数 --><property name="minPoolSize">5</property><!-- 数据库连接池中的最大的数据库连接数 --><property name="maxPoolSize">10</property><!-- C3P0 数据库连接池可以维护的 Statement 的个数 --><property name="maxStatements">20</property><!-- 每个连接同时可以使用的 Statement 对象的个数 --><property name="maxStatementsPerConnection">5</property></named-config></c3p0-config>
第二种方法:使用工具类JDBCTools.java
package tan.com;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class JDBCTools {//数据库连接池应该只被初始化一次(多个项目共享一个连接池就够了)private static DataSource dataSource=null;static{dataSource=new ComboPooledDataSource("helloc3p0");}public static Connection getConnection() throws Exception{return dataSource.getConnection();}/*** 2、关闭资源* 关闭资源关闭 Statement 和 Connection和ResultSet* @param rs* @param statement* @param conn*/public static void release(ResultSet rs, Statement statement, Connection conn) {if(rs != null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null) {try {statement.close();} catch (Exception e2) {e2.printStackTrace();}}if (conn != null) {try {conn.close();} catch (Exception e2) {e2.printStackTrace();}}}/*** 关闭 Statement 和 Connection* @param statement* @param conn*/public static void release(Statement statement, Connection conn) {if (statement != null) {try {statement.close();} catch (Exception e2) {e2.printStackTrace();}}if (conn != null) {try {conn.close();} catch (Exception e2) {e2.printStackTrace();}}}}
使用关键代码:
//如何从数据库连接池中获取连接呢?@Testpublic void testJDBCTools() throws Exception{Connection connection=JDBCTools.getConnection();System.out.println(connection);}
\
C3P0数据库连接池源代码相关推荐
- Java数据库开发与应用之MySQL数据库、JDBC操作数据库、C3P0数据库连接池,Java反射等
MySQL数据库,JDBC接口,MyBatis框架等,掌握的数据的存放和管理. Java数据库开发基础,介绍MySQL数据库.JDBC操作数据库.C3P0数据库连接池,Java反射等内容,进行油画商城 ...
- c3p0 数据库连接池
C3P0连接池 c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.c3p0一般是与Hibernate,Spring等框架一块使用的,当然也可以 ...
- [原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等...
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 数据库连接池种类、C3P0数据库连接池、德鲁伊数据库连接池
数据库连接池种类 1.JDBC的数据库连接池使用javax.sql.DataSource来表示,DataSource只是一个接口,该接口通常由第三方提供实现 2.C3P0数据库连接池,速度相对较慢,稳 ...
- 数据库连接池及C3P0数据库连接池技术
数据库连接池(重要) 注意数据库连接池只是简化获得数据库连接对象和关流的部门 1.数据库连接池: 1.概念: 其实就是一个容器(在Java中就是集合),存在数据库连接的容器,当系统初始化好后,容器被创 ...
- 数据库连接池 DBCP和c3p0数据库连接池
一.数据库连接池 1. 什么是连接池 传统的开发模式下,Servlet处理用户的请求,找Dao查询数据,dao会创建与数据库之间的连接,完成数据查询后会关闭数据库的链接. 这样的方式会导致用户每次请求 ...
- 【JDBC】使用c3p0数据库连接池的各种报错警告
使用c3p0数据库连接池的各种报错警告 使用c3p0数据库连接池的时候,先导入了三个jar包在lib 文件夹中, c3p0-0.9.5.2.jar mchange-commons-java-0.2.3 ...
- C3P0数据库连接池的配置
在pom.xml文件中导入jar包 <dependency><groupId>com.mchange</groupId><artifactId>c3p0 ...
- Python操作数据库及Python实现mysql数据库连接池源代码
简介 pymysql:纯Python实现的一个驱动.因为是纯Python编写的,因此执行效率不如MySQL-python.并且也因为是纯Python编写的,因此可以和Python代码无缝衔接. MyS ...
最新文章
- 惊呆了!两人发现抵用券漏洞,疯狂“薅羊毛”获利 770 余万
- Shiro <shiro:hasPermission >标签不生效,shiro权限不生效原因
- 笔记:Java中的单例设计模式
- Oracle select 基础查询语句 day02
- PD生成SQL脚本附带注释命令
- Microsoft Teams的Meet Now功能
- 使用FindBugs-IDEA插件找到代码中潜在的问题
- Visual C++中的ODBC编程
- 年会季来临,年会会场管理一招搞定!
- flex弹性盒子的兼容性写法
- HDU 4069 Squiggly Sudoku
- 2022年十大突破性技术,“无密码”排名第一
- 电脑驱动器中出现Winretools和ESP问题
- 即使被拖库,也可以保证密码不泄露(一种安全的加密方案)
- 手机WIFI传文件到局域网服务器,局域网内手机和电脑怎么实现无线传输文件?
- NVIDIA RTX A6000深度学习训练基准
- 中国中型皮卡市场趋势报告、技术动态创新及市场预测
- 罗切斯特大学计算机科学硕士介绍,罗切斯特大学计算机科学专业
- office2016实用论文排版技巧
- puppy linux wifi6,Puppy官网
热门文章
- python小象学院: JSON文件 /网络爬虫/Pandas-----空气质量描述
- 职称计算机合格证打印,好消息!这些职称证书可直接网上打印了,效用等同!...
- 网上毕业答辩!高校举办研究生学位论文网络预答辩
- Elasticsearch:Pinyin 分词器
- 粘贴PDF文本批量去掉换行符
- 多维度分析对比腾讯云服务器和阿里云服务器
- bp学习函数matlab代码,小范学数量经济学之四:BP神经网络预测的MATLAB模拟代码
- 多个爬虫http代理ip解决方案
- 微信PC最新测试版3.3.0.60 朋友圈采集 HOOK技术
- Python爬虫 requests教学(四):verify关健字参数