JDBC连接池(数据源)
自定义连接池:用装饰设计模式将原连接的close方法改造成将连接还回数据源;装饰设计模式:http://www.cnblogs.com/tongxuping/p/6832518.html;
开源数据库连接池:
C3P0连接池:
基本步骤:
1.导入开发包
2.创建数据库连接池
ComboPooledDataSource cpds = new ComboPooledDataSource();
3.配置基本的连接信息
a) 通过setters方法来设置参数
b) 通过c3p0-config.xml文件来配置基本连接信息
c) 通过c3p0.properties文件来配置基本连接信息
示例代码:
package Pool; import java.sql.Connection;
import java.sql.PreparedStatement; import JDBCutils.JDBCutils; import com.mchange.v2.c3p0.ComboPooledDataSource; /*
* c3p0 是个开源是数据源
* c3p0被称为数据库链接池,用来管理数据库链接的获取和存储。
* 有两种写法:
* 方式一:在创建对象后直接设置JDBC的基本信息,如:数据库驱动,数据库url,登陆数据库用户名和密码;然后再对数据库操作
* 方式二:外建一个xml或者properties配置文件,存在配置文件时无需对数据库基本信息进行设置。直接获取数据库连接,对数据库相应的操作
*/
public class C3P0 {
public static void main(String[] args) { Connection conn = null;
PreparedStatement ps=null;
//通过ComboPooledDataSource获取dateSource即数据源,可从中获取数据库的链接。
ComboPooledDataSource pool = new ComboPooledDataSource();
//ComboPooledDataSource pool = new ComboPooledDataSource("config1");
/*
* 传参表示需要使用config1的配置信息为数据库操作信息
*/
try {
/*pool.setDriverClass("com.mysql.jdbc.Driver");
pool.setJdbcUrl("jdbc:mysql:///mydb5");
pool.setUser("root");
pool.setPassword("admin");*/ conn = pool.getConnection();
String sql="delete from tb_batch where id>?";
ps = conn.prepareStatement(sql);
ps.setInt(1, 20);
int rows = ps.executeUpdate();
System.out.println(rows); } catch (Exception e) {
e.printStackTrace();
}finally{
JDBCutils.closeResou(conn, ps, null);
}
}
}
XML配置:XML文件名必须为:c3p0-config.xml,否则都不到配置信息;name不能随意写。
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<!-- setting -->
<!-- c3p0默认读取这块 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///mydb5</property>
<property name="user">root</property>
<property name="password">admin</property>
</default-config> <named-config name="config1">
<!-- -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///mydb1</property>
<property name="user">admin</property>
<property name="password">123</property>
</named-config>
</c3p0-config>
Properties配置:
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql:///mydb1
c3p0.user=root
c3p0.password=root
JDBC连接池(数据源)的更多相关文章
- 四大流行的jdbc连接池之C3P0篇
C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSourc ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(九)数据层优化-jdbc连接池简述、druid简介
日常啰嗦 终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和da ...
- JDBC连接池-C池3P0连接
JDBC连接池-C3P0连接 c3p0连接池的学习英语好的看英文原版 c3p0 - JDBC3 Connection and Statement Pooling 使用c3p0连接池 三种方 ...
- JDBC连接池(三)DBCP连接池
JDBC连接池(三)DBCP连接池 在前面的随笔中提到 了 1.JDBC自定义连接池 2. C3P0连接池 今天将介绍DBCP连接池 第一步要导入jar包 (注意:mysql和mysql 驱动 ...
- 【JDBC&Dbutils】JDBC&JDBC连接池&DBUtils使用方法(重要)
-----------------------JDBC---------- 0. db.properties文件 driver=com.mysql.jdbc.Driver url=jdbc: ...
- JDBC连接池和DBUtils
本节内容: JDBC连接池 DBUtils 一.JDBC连接池 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采取连接池技术,来共享连接Conne ...
- 利用jdbc连接池(利用jdni)
简介 前段时间用jdbc连接池,在这里记录下 1.利用jdni配置数据源 在Web项目的META-INF文件夹中新建context.xml文件,内容为: <?xml version=" ...
- 数据层优化-jdbc连接池简述、druid简介
终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和dao层的优化 ...
- JDBC连接池-C3P0连接
JDBC连接池-C3P0连接 c3p0连接池的学习英语好的看英文原版 c3p0 - JDBC3 Connection and Statement Pooling 使用c3p0连接池 三种方 ...
- 自定义一个简单的JDBC连接池
一.什么是JDBC连接池? 在传统的JDBC连接中,每次获得一个Connection连接都需要加载通过一些繁杂的代码去获取,例如以下代码: public static Connection getCo ...
随机推荐
- linux下生成core dump文件方法
core 文件的简单介绍 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”).我们可以认为 co ...
- BZOJ3529 [Sdoi2014]数表 【莫比乌斯反演】
3529: [Sdoi2014]数表 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2151 Solved: 1080 [Submit][Status ...
- Hello to the cruel world
- 常见通用的 JOIN 查询
SQL执行循序: 手写: SELECT DISTINCT <query_list> FROM <left_table> <join type> JOIN <r ...
- Js+CSS3实现手风琴效果
效果截图: HTML代码: <div id="container"> <img src="images/photo01.jpg" alt=&q ...
- 数据结构&图论:K短路-可持久化可并堆
本来A*就可以搞定的题,为了怕以后卡复杂度,找了个这么个方法 现阶段水平不够就不补充算法分析部分了 对于图G,建立一个以终点t为起点的最短路径构成的最短路径树 (就是反着跑一遍最短路,然后对于一个不为 ...
- 斯特林数(Stirling number)
在组合数学,Stirling 数可指两类数,第一类Stirling 数和第二类 Stirling 数,都是由18世纪数学家 James Stirling 提出的. Stirling 数有两种,第一类和 ...
- CentOS7 Tomcat 启动过程很慢,JVM上的随机数与熵池策略
1. CentOS7 Tomcat 启动过程很慢 在centos启动官方的tomcat时,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的: <co ...
- 汕头市队赛 C KMP codeforces B. Image Preview
汕头市队赛题目传送门 codeforces题目传送门 这道题我的做法是 尝试先往左走然后往右走 或者先往右走然后往左走 然后注意一下枚举顺序就okay啦 #include<cstdio> ...
- bzoj 1588 裸平衡树
//By BLADEVIL #include <cstdio> #include <set> #define inf 1<<30 using namespace s ...