C3P0连接技术
1.导入jar包(两个)
c3p0-0.9.5.2.jar和mchange-commons-java-0.2.12.jar
导入数据库驱动jar包
2.定义配置文件
配置文件名称:c3p0.properties 或者 c3p0-config.xml(叫这两个名称会自动寻找文件)
路径:默认在项目类路径(指的是在src下)
3.获取数据库连接池对象
创建核心对象
数据库连接池对象ComboPooledDataSource 【DataSource 连接池、数据源】
ComboPooledDataSource什么都不传使用默认的(使用较多)
DataSource ds = new ComboPooledDataSource();
指定名称可以使用指定配置
DataSource ds = new ComboPooledDataSource("otherc3p0");
4.获取连接:getConnection
获取连接对象
package cn.itcust.datasource.c3p0; import com.mchange.v2.c3p0.ComboPooledDataSource; import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException; /**
* c3p0的演示
* */
public class C3P0Demo1 {
public static void main(String[] args) throws SQLException {
//1.导包
//2.写配置文件
//3.创建数据库连接池对象
DataSource ds = new ComboPooledDataSource();
//4.获取连接池对象
Connection conn = ds.getConnection();
//5.打印连接对象。字符串的形式展示获取到了。报错,null没获取到
System.out.println(conn);
}
}
输出的内容

JDBC4Connection类名
12bc6874哈希扣的值
package cn.itcust.datasource.c3p0; import com.mchange.v2.c3p0.ComboPooledDataSource; import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException; /**
* c3p0演示,连接参数
*/
public class C3P0Demo2 {
public static void main(String[] args) throws SQLException {
testNamedConfig();
} public static void testNamedConfig() throws SQLException {//为了方便调用设置为静态的
//获取DataSource,使用指定名称配置
DataSource ds = new ComboPooledDataSource("otherc3p0");
//2.获取连接
for (int i = 1; i < 11; i++) {
Connection conn = ds.getConnection();
System.out.println(i + ":" + conn);
}
}
}
配置文件
<c3p0-config>
<!-- 使用 默认-配置 读取连接池对象 -->
<default-config>
<!-- 连接参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<!--注册驱动--> <property name="jdbcUrl">jdbc:mysql://localhost:3306/db4</property>
<!--数据库连接对象的 地址--> <property name="user">root</property>
<!--数据库连接对象的 用户名称--> <property name="password">ROOT</property>
<!--数据库连接对象的 用户密码--> <!-- 连接池参数 -->
<property name="initialPoolSize">5</property>
<!--初始化申请连接的数量--> <property name="maxPoolSize">10</property>
<!--最大的连接数量-->
<!--同时进来的10个人会把连接对象用完,精确到毫秒,这个根据数据库的最大连接数量和电脑的性能设置--> <property name="checkoutTimeout">3000</property>
<!--申请不到对象等待3秒 报超时时间-->
</default-config> <!--c3p0配置文件很人性化,可以通过一个配置文件操作不同数据库 -->
<named-config name="otherc3p0">
<!-- 连接参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/girls</property>
<property name="user">root</property>
<property name="password">ROOT</property> <!-- 连接池参数 -->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">8</property>
<property name="checkoutTimeout">1000</property>
</named-config>
</c3p0-config>
C3P0连接技术的更多相关文章
- Java开发笔记(一百五十)C3P0连接池的用法
JDBC既制定统一标准兼容了多种数据库,又利用预报告堵上了SQL注入漏洞,照理说已经很完善了,可是人算不如天算,它在性能方面不尽如人意.问题出在数据库连接的管理上,按照正常流程,每次操作完数据库,都要 ...
- Java测试开发--MySql之C3P0连接池(八)
连接池C3P0! 连接池技术的目的:解决建立数据库连接耗费资源和时间很多的问题,提高性能 ! 下面以案例演示下C3P0的操作流程. 1.测试准备: ①MySql数据库一枚②database名为myte ...
- c3p0连接池]
<c3p0-config> <!-- 默认配置 --> <default-config> <property name="jdbcUrl" ...
- c3p0连接池获得的Connection执行close方法后是否真的销毁Connection对象?
问题描述: jfinal做的api系统中,在正常调用接口一段时间后,突然再调用接口的时候,该请求无响应api系统后台也无错误信息 (就是刚开始接口调用是正常的,突然就无响应了) 于是啊,就开始找错误. ...
- C3P0连接池在hibernate和spring中的配置
首先为什么要使用连接池及为什么要选择C3P0连接池,这里就不多说了,目前C3P0连接池还是比较方便.比较稳定的连接池,能与spring.hibernate等开源框架进行整合. 一.hibernate中 ...
- C3P0连接池问题,APPARENT DEADLOCK!!! Creating emergency..... [问题点数:20分,结帖人lovekong]
采用c3p0连接池,每次调试程序,第一次访问时(Tomcat服务器重启后再访问)都会出现以下错误,然后连接库需要很长时间,最终是可以连上的,之后再访问就没问题了,请高手们会诊一下,希望能帮小弟解决此问 ...
- HQL查询及Hibernate对c3p0连接池的支持
//HQL查询 // auto-import要设置true,如果是false,写HQL时要指定类的全名 //查询全部列 Query query = session.createQuery(" ...
- comet基于HTTP长连接技术(java即时通信,推送技术详解)
服务器推送技术的基础思想是将浏览器主动查询信息改为服务器主动发送信息,服务器发送一批数据,浏览器显示消息,同时保证与服务器的连接,当服务器需要再一次的发送数据,浏览器显示数据并保持连接. comet基 ...
- C3P0连接池详解及配置
C3P0连接池详解及配置 本人使用的C3P0的jar包是:c3p0-0.9.1.jar <bean id = "dataSource" class = "com.m ...
随机推荐
- 区块链 POS和POW的区别
如果你是一名资深的比特币矿工或商人,你一定听说过POW和POS,否则,很难理解. 读完本文,相信会让你明白,原来,虚拟货币除了挖矿,还有利息! 第一段:通俗的概念解析 POW:全称Proof of W ...
- PAT甲级代码仓库
大道至简,知易行难.希望能够坚持刷题. PAT甲级真题题库,附上我的代码. Label Title Score Code Level 1001 A+B Format 20 1001 * 1002 A+ ...
- Maven国内镜像配置(阿里云)-sunziren
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...
- 剑指offer-面试题49-丑数-空间换时间
/* 题目: 求从1开始的第n个丑数. */ /* 思路: 按顺序列出各个丑数. */ #include<iostream> #include<cstring> #includ ...
- 开发分支管理模型之阿里AoneFlow
说到分支管理模型,令人最为熟悉的莫过于TrunkBased 和 GitFlow. TrunkBased 模型是持续集成思想所崇尚的工作方式,它由单个master分支和许多release分支组成,每个r ...
- Centos 安装 Go 编译环境
1.下载go(最新版列表 https://studygolang.com/dl) wget -c https://studygolang.com/dl/golang/go1.13.5.linux-am ...
- awk数组学习2
以下数据取自redis数据库中client list的结果, id= addr= fd= name= age= idle= flags=N db= sub= psub= multi=- qbuf= q ...
- 谈一谈php反序列化
1.序列化与反序列化 php中有两个函数serialize()和unserialize() 序列化serialize(): 当在php中创建了一个对象后,可以通过serialize()把这个对象转变成 ...
- PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) (进制转换,回文数)
A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu ...
- PTA 1004 Counting Leaves
题目描述: A family hierarchy is usually presented by a pedigree tree. Your job is to count those family ...