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中,进行转发.通过页码等的计算,把要显示的内容添加到一个小集合中,转发.遍历小集合以显示当 ...
随机推荐
- vue之组件注册
一.组件名 写组件之前你要明确你的目的,想要做一个什么样的组件,我们在注册一个组件的时候,需要给组件一个名字,对于命名,尽可能明确,使用 kebab-case (短横线分隔命名) 或 PascalCa ...
- Ubuntu下Deb软件包相关安装与卸载
安装deb软件包 sudo dpkg -i xxx.deb 删除软件包 sudo dpkg -r xxx.deb 连同配置文件一起删除 sudo dpkg -r --purge xxx.deb 查看软 ...
- remove_if的问题
#include<iostream> #include<list> #include<algorithm> #include"PRINT_ELEMENTS ...
- U盘容纳不了大于4G的文件比如ISO文件咋办?
格式化U盘成NTFS格式就行了,不这么做8,16,32G Upan都容纳不下来.
- $.ajax里一个中文全角逗号引发的惨案
昨天,在制作一个页面时,突然发生一件不可思议的事情--JS失效了! 确实让人匪夷所思,我记得饭前还是正常运作的. 于是慢慢的缩小范围,把下午刚加的语句删掉,删完了页面就正常了. 于是被删除的这部分代码 ...
- shell mysql 直接创建表
shell 直接创建表 #!/bin/bash mysql -hdatabases -uroot -p^xxxxasdasdadd <<EOF Create Database If Not ...
- pomelo加入定时任务
需求:在arenaserver下添加一个rank定时任务,每一分钟对对玩家进行一次排行. 首先在game-server/app/servers/arena文件夹下添加cron文件夹. 在game-se ...
- Effective C++ 条款四 确定对象被使用前已被初始化
1.对于某些array不保证其内容被初始化,而vector(来自STL)却有此保证. 2.永远在使用对象前初始化.对于无任何成员的内置类型,必须手工完成. int x = 0; c ...
- TListView使用方法1(转)
ListView1.Items 为标准 Tlistitems类 ListView1.Items (1)赋值 with ListView1.Items.Add do begin Caption:=cap ...
- webform的操作完之后返回主页面的行定位
1.在repeater表格的行绑定时给行一个id(唯一id),此地方为绑定该表格的主键. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDA3OD ...