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 ...
随机推荐
- .NetCore学习笔记:四、AutoMapper对象映射
什么是AutoMapper?AutoMapper是一个简单的小型库,用于解决一个看似复杂的问题 - 摆脱将一个对象映射到另一个对象的代码.这种类型的代码是相当沉闷和无聊的写,所以为什么不发明一个工具来 ...
- Docker Stack 学习笔记
该文为<深入浅出Docker>的学习笔记,感谢查看,如有错误,欢迎指正 一.简介 Docker Stack 是为了解决大规模场景下的多服务部署和管理,提供了期望状态,滚动升级,简单易用,扩 ...
- vim编辑超大文件
进入大文件(12g,250w+ lines),vim,耐心等待 有两种方法编辑删除冗余字段 1.set number ,可以通过:+数字组合跳到指定行,输入命令 ":100,200d&q ...
- jsx中的路径拼接
<img style={{height:80,width:80}} src={"/images/"+index+ ".jpg"}/>其中 index ...
- MySQL 当记录不存在时插入(insert if not exists、dual )
INSERT INTO clients(client_id, client_name, client_type)SELECT 10345, ’IBM’, ’advertising’FROM dualW ...
- Java与Go语言差异1 传值还是传引用
在Java中,复杂类型(除原始类型外的其它类)作为入参,在方法中被修改后,跳出方法对象内的值仍会保持,也就是传的是引用.原始类型传的是值,如int, double等原始类型. Java代码: publ ...
- JavaScript自学笔记(3)--- 用JS来实现网页浮窗
最近做个小项目,给网页加个浮窗,考验了基础的css,js技术,还是蛮有意思的,代码如下(部分代码来源于引用,见底部) <!DOCTYPE html> <html> <he ...
- [Python]scatter_matrix报错 module 'pandas' has no attribute 'scatter_matrix'
运行pandas.scatter_matrix()散点图函数时报错, 原因是该函数在新版本用法发生了变化: pandas.plotting.scatter_matrix 完整用法:pd.plottin ...
- 用记事本编辑HTML文件后保存代码全堆在一起了,记事本打开html文件格式乱了
经常会遇到这么一个现象,记事本打开编辑html代码,保存后格式就乱了,代码全部堆在一行了.遇到这种情况有时候也很无语 因为平常工作中也经常遇到这样的情况,后来通过研究,大概找到问题的所在. 我是这么一 ...
- centos-python3.5安装
python版本:Python-3.5.5.tgz tar -xvf Python-3.5.5.tgz cp Python-3.5.5 /usr/local cd /usr/local/Python- ...