博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL---数据库从入门走向大神系列(十四)-ComboPooledDataSource(C3P0连接池配置)
阅读量:6829 次
发布时间:2019-06-26

本文共 3341 字,大约阅读时间需要 11 分钟。

需要准备的jar包:

MySQL的jar包mysql-connector-java-5.1.39-bin目前是5.1.39版本:

C3p0的2个包:

c3p0-0.9.1.2.jar和c3p0-sources-0.9.1.2.jar

配置文件:c3p0-config.xml

名字必须为这个!

com.mysql.jdbc.Driver
root
1234
2
30
10
2
50
com.mysql.jdbc.Driver
root
1234
5
100
50
1000
0
5

演示代码:

package cn.hncu.C3p0;import java.beans.PropertyVetoException;import java.sql.Connection;import java.sql.SQLException;import org.junit.Test;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3p0Demo {
@Test // 纯Java方法使用c3p0 public void C3p0Demo() throws PropertyVetoException, SQLException { ComboPooledDataSource pool = new ComboPooledDataSource(); pool.setUser("root");// 用户姓名 pool.setPassword("1234");// 用户密码 pool.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/hncu?useUnicode=true&characterEncoding=utf-8");// MySQL数据库连接url pool.setDriverClass("com.mysql.jdbc.Driver"); // pool可以调用set方法进行Connection池的配置 // 连接关闭之后,内存会被释放,下次取时会重新开(内存地址不共用) for (int i = 0; i < 20; i++) { Connection con = pool.getConnection(); System.out.println(i + ":" + con); if (i % 2 == 0) { con.close(); } } } @Test // 演示采用配置文件的方式使用c3p0 public void C3p0PropertyDemo() throws SQLException { ComboPooledDataSource pool = new ComboPooledDataSource();//空参,自动到classpath目录下面加载“c3p0-config.xml”配置文件---配置文件的存储位置和名称必须是这样,且使用“默认配置” //ComboPooledDataSource pool = new ComboPooledDataSource("demo");//加载“c3p0-config.xml”文件中定义的“demo”这个配置元素 for(int i=0;i<25;i++){ Connection con = pool.getConnection(); System.out.println(i+":"+ con.hashCode()); } }}

包装一下C3P0的Connection池

package cn.hncu.C3p0;import java.sql.Connection;import java.sql.SQLException;import javax.sql.DataSource;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3p0Pool {
//我们的这个包装,只是为了把c3p0池做成让每个线程(客户端)获得的是同一个连接,方便做b/s框架下的事务 private static DataSource pool; private static ThreadLocal
t = new ThreadLocal
(); static{ pool = new ComboPooledDataSource("demo"); //这里的参数视你的配置文件而定,也可以不写,用默认的配置 } public static DataSource getDataSource(){ return pool; } public static Connection getConnection() throws SQLException{ Connection con = t.get(); if(con==null){ con=pool.getConnection(); t.set(con); } return con; }}

转载请附上原文博客链接:

你可能感兴趣的文章
我的友情链接
查看>>
ETag负载均衡的相关问题
查看>>
一段简单的javascript生成随机密码代码
查看>>
(MyISAM) Indexed Sequential Access Method
查看>>
服务器端IIS中部署带Office组件程序
查看>>
RHEL 7.0 正式版抢先体验
查看>>
thinkphp5跨数据库查询
查看>>
高可用,多路冗余GFS2集群文件系统搭建详解
查看>>
AS3取bitmapdata透明通道
查看>>
一个不错的git学习网站
查看>>
Linux驱动编程--基于I2C子系统的I2C驱动
查看>>
nohup和&的区别
查看>>
MariaDB——MySQL的替代者
查看>>
我的友情链接
查看>>
linux 下搭建postfix服务器
查看>>
生产环境子域降级记录
查看>>
framework7 vue touch事件 阻止click事件失效
查看>>
markdown语法博客园测试
查看>>
Collections
查看>>
Linux无人职守应答文件配置内容
查看>>