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 ...
随机推荐
- 非常简洁简单的tcp socket库 XKSocket
一个非常简洁简单的异步tcp socket库,主要就是分包的问题,处理组包,粘包等问题 非常适合新手:) 项目中带有使用示例. http://git.oschina.net/dreamzgj/XKSo ...
- 《自拍教程21》mediainfo_多媒体文件查看工具
mediainfo命令介绍 mediainfo.exe(Linux/iMac下是未带后缀的mediainfo), 是一款音视频图片文件的信息查询工具, 常用于查看多媒体文件的视频流信息,音频流信息,字 ...
- VBA-UTF-8文件的操作
1.读入UTF-8文件 Dim value As String Dim vLines As Variant Call ReadCsvUTF_8(vFile.Path, value) vLin ...
- scanf 与fgets
scanf: 1.以输入字符串也可以输入数字 . 2.遇到空格就停止.3.会有segmentation fault. fgets: 1.只能输入字符串.2.回车才会停止.3.不会有segmenntat ...
- 转:静态链表及其创建(C语言实现)
http://c.biancheng.net/view/3339.html 折半插入排序算法(C语言代码实现) http://c.biancheng.net/view/3440.html 二叉树层次遍 ...
- C#中的异步编程--探索await与async关键字的奥妙之处,原来理解和使用异步编程可以这么简单
前言 await与async是C#5.0推出的新语法,关于await与async有很多文章讲解.但看完后有没有这样一种感觉,感觉这东西像是不错,但好像就是看不太懂,也不清楚该怎么使用.虽然偶有接触,但 ...
- java script 内置对象
java script 内置对象 Date 日期对象 字符串对象 定义字符串的方法就是直接赋值 使用 String 对象的 toUpperCase() 方法来将字符串小写字母转换为大写,反之 toLo ...
- vue(六)--计算属性(computed)
计算属性关键词: computed demo1: <div id="app"> <p>原始字符串: {{ message }}</p> < ...
- PTA 汉诺塔的非递归实现(C 语言)
借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c), 即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”), 并保证每个移动符合汉诺塔问题的要求 ...
- Selenium实战(七)——自动发送邮件
SMPT(Simple Mail Transfer Protocol)简单邮件传输协议,是一组由源地址到目的地址传送邮件的规则,可以控制信件的中转方式.Python的smptlib模块提供了简单的AP ...