C3P0Tool
c3p0-config.xml
<c3p0-config>
<named-config name="c3p0">
<property name="user">root</property>
<property name="password">hello</property>
<property name="url">jdbc:mysql://localhost:3306/frienddb</property>
<property name="driver">com.mysql.jdbc.Driver</property>
<!--数据库连接池连接数不足时,向数据库服务器申请的连接数-->
<property name="acquireIncrement">50</property>
<!--初始化连接数 -->
<property name="initialPoolSize">1</property>
<!-- 最小连接数-->
<property name="minPoolSize">5</property>
<!-- 最大连接数-->
<property name="maxPoolSize">50</property>
<!-- 数据库连接池可以维护的statement个数-->
<property name="maxStatements">5</property>
<!-- 每个连接同时可以使用的statement个数-->
<property name="maxStatementsPerConnection">5</property>
</named-config>
</c3p0-config>
package general.page.query;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3P0Tool {
private static ComboPooledDataSource cpds=null;
//数据库连接池只被初始化一次
static{
cpds = new ComboPooledDataSource("c3p0");
}
public static Connection getConnection() throws SQLException{
return cpds.getConnection();
}
public static void close(ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void close(PreparedStatement prst){
if(prst!=null){
try {
prst.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void close(Connection conn){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void close(PreparedStatement prst,Connection conn){
close(prst);
close(conn);
}
public static void close(ResultSet rs,PreparedStatement prst,Connection conn){
close(rs);
close(prst);
close(conn);
}
}
C3P0Tool的更多相关文章
- Servlet分页查询
分页查询: 1.逻辑分页查询:用户第一次访问时就把全部数据访问出来,添加到一个大集合中,然后放到session中,进行转发.通过页码等的计算,把要显示的内容添加到一个小集合中,转发.遍历小集合以显示当 ...
随机推荐
- 读取编码器信息Python2.7和Python3.3版本差异及解决,一次订阅多次调用callback的解决
1. Python3.3以字节类型返回编码器信息,b'...',BUF: b'\xc3KOO\x00OO\x00OO\x00OO\x00OO\x00\x03\x00\x00\x00\x00\x99R\ ...
- 关于几种UI框架简单总结
最近两年多的时间先后做过几款终端程序,UI框架从MFC转向过WxWidgets,之后再转向Qt.三种框架精通远谈不上,用起来还是没什么问题. 简单聊聊三种框架的优缺点. 1.MFC 似乎作为一种饱受批 ...
- Go -- go语言指针
package main import "fmt" type Test struct { Name string } func change2(t *Test) { t.Name ...
- HDU1800 Flying to the Mars 【贪心】
Flying to the Mars Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 终端中的乐趣:6个有趣的Linux命令行工具
文章链接: http://hpw123.net/a/Linux/ruanjiananzhuang/2014/1103/117.html 很多其它文章尽在 http://www.hpw123.net ...
- 【Mongodb教程 第十九课 】PHP与MONGODB的条件查询
与普通的关系型数据库类似,在对数据的删.改.查的时候,会用到查询条件,如mysql中的 where… 而MongoDB中,经过php来做的所有的操作指令都是用array来包裹的: MongoColle ...
- Material Design (四),AppBarLayout的使用
前言 AppBarLayout,顾名知意.就是用来给AppBar布局的容器,是LinearLayout的子类.而AppBar就包括我们通常所知道的ActionBar,Toolbar. AppBarL ...
- 用python编写的简易端口扫描器
#coding = utf-8 ''' python 3.4 通过简单的TCP端口连接来判断指定IP是否开放了指定端口. ''' import socket import optparse impor ...
- 64位CentOs7源码安装mysql-5.6.35过程分享
首先安装依赖包,避免在安装过程中出现问题 [root@bogon liuzhen]# yum -y install gcc gcc-c++[root@bogon liuzhen]# yum -y in ...
- 树状数组(二叉索引树 BIT Fenwick树) *【一维基础模板】(查询区间和+修改更新)
刘汝佳:<训练指南>Page(194) #include <stdio.h> #include <string.h> #include <stdlib.h&g ...