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 ...
最新文章
- xp创建虚拟服务器,Xp系统怎么创建虚拟目录?Xp系统创建虚拟目录的方法
- .NET 指南:参数的设计
- Python每日一练(9)-批量爬取B站小视频
- Kubernetes v1.10.x HA 全手动安装教程(TL;DR)
- Javascript高级程序设计第四版详细测评
- 通过开发对接淘宝联盟发单淘宝客优惠线报自动转链接社转发返利机器人球鞋搬砖
- 怎么能快速学会计算机,初学者怎样学习电脑能够快速入门(免费科普电脑基础知识)...
- 微步在线云API-python批量检测IP脚本
- ThinkAdmin for PHP后台管理系统
- 【SQL基础】SQL常用函数简要解析
- 火力全开的网易云,会不会给云计算市场增加新的变数?
- 银河麒麟批量压缩图片的方法
- 华为1+X网络系统建设与运维(中级)——链路聚合
- Vivado IP Status显示为“Using cached IP results“,变更回“synth_design Complete“方法
- 基于Python web信息旅游管理系统
- Fliqlo时钟Windows、IOS屏保
- 2018通达信l2服务器源码,2018最牛指标 最牛趋势跟踪 通达信指标 源码 贴图
- C++写个三维模型展UV
- mysql获取当前年,当前月,当前时,当前分,当前秒
- CBK发声世界发展论坛首脑峰会启动仪式