java 连接池管理,java 利用c3p0管理数据库连接池

com.mousewheel.dbcon;importjava.io.InputStream;importjava.sql.Connection;importjava.sql.SQLException;importjava.util.Properties;importcom.mchange.v2.c3p0.ComboPooledDataSource;public classDBPool {private staticDBPool instance;privateComboPooledDataSource dataSource;static{

instance= newDBPool();

}privateDBPool() {try{

dataSource= newComboPooledDataSource();

Properties prop= newProperties();

InputStream in= DBPool.class.getClassLoader().getResourceAsStream("db.properties");

prop.load(in);

dataSource.setDriverClass(prop.getProperty("jdbcdriver"));

dataSource.setJdbcUrl(prop.getProperty("url"));

dataSource.setUser(prop.getProperty("username"));

dataSource.setPassword(prop.getProperty("password"));

}catch(Exception e) {

e.printStackTrace();

}

}public staticDBPool getInstance(){returninstance;

}public Connection getConnection() throwsSQLException {returndataSource.getConnection();

}

}

DBUtil类,包装DBPool,简化使用

packagecom.mousewheel.dbcon;importjava.sql.Connection;importjava.sql.SQLException;public classDbUtil {public static Connection getConnection() throwsSQLException {

DBPool pool=DBPool.getInstance();returnpool.getConnection();

}

}

测试代码,和不使用连接池的情况做对比

packagecom.mousewheel.dbcon;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.util.Properties;importjava.io.InputStream;importcom.mousewheel.dbcon.DbUtil;classApp {public static voidmain(String[] args) {//use c3p0 connection pool

try{for (int i = 0; i < 100; i++) {long beginTime =System.currentTimeMillis();

Connection con=DbUtil.getConnection();//执行查询语句

String sql = "select * from student";

PreparedStatement ps=con.prepareStatement(sql);

ResultSet rs=ps.executeQuery();while(rs.next()) {//System.out.println(rs.getString(1));

}

con.close();long endTime =System.currentTimeMillis();

System.out.println(String.format("第%s次,%s", i, (endTime -beginTime)));

}

}catch(Exception e) {

e.printStackTrace();

}//jdbc without using conection pool

try{for (int i = 0; i < 100; i++) {long beginTime =System.currentTimeMillis();

Properties prop= newProperties();

InputStream in= App.class.getClassLoader().getResourceAsStream("db.properties");

prop.load(in);

Class.forName(prop.getProperty("jdbcdriver"));

Connection con= DriverManager.getConnection(prop.getProperty("url"), prop.getProperty("username"),

prop.getProperty("password"));

String sql= "select * from student";

PreparedStatement ps=con.prepareStatement(sql);

ResultSet rs=ps.executeQuery();while(rs.next()) {//System.out.println(rs.getString(1));

}

con.close();long endTime =System.currentTimeMillis();

System.out.println(String.format("第%s次,%s", i, (endTime -beginTime)));

}

}catch(Exception e) {

e.printStackTrace();

}

}

}

java 利用c3p0管理数据库连接池

标签:执行   throws   exce   public   etc   form   exception   for   prepare

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/mousewheel/p/6660238.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值