自己测试的c3p0的代码demo
2016-06-14 20:25
239 查看
public class SimpleDataSourceDemo { public static ComboPooledDataSource cpds = new ComboPooledDataSource("dk-c3p0-pool"); static { try { init(); } catch (PropertyVetoException e) { e.printStackTrace(); System.exit(0); } } private static void init() throws PropertyVetoException { cpds.setDriverClass(driverClass); //loads the jdbc driver cpds.setJdbcUrl( url ); cpds.setUser(username); cpds.setPassword(pwd); cpds.setMaxStatements( 180 ); // the settings below are optional -- c3p0 can work with defaults cpds.setMinPoolSize(5); cpds.setAcquireIncrement(5); cpds.setMaxPoolSize(20); cpds.setConnectionCustomizerClassName("db.pool.c3p0.MyConnectionCustomizer"); cpds.setPreferredTestQuery("select 1"); cpds.setTestConnectionOnCheckin(true); cpds.setTestConnectionOnCheckout(true); cpds.setIdentityToken("dk-identityToken"); } public static Connection getConnection(){ try { System.out.println("idleconn="+cpds.getNumIdleConnections()); System.out.println("numconn="+cpds.getNumConnections()); System.out.println("minPoolSize="+cpds.getMinPoolSize()); System.out.println("maxPoolSize="+cpds.getMaxPoolSize()); return cpds.getConnection(); } catch (SQLException e) { e.printStackTrace(); } return null; } public static void main(String[] args) throws PropertyVetoException { long start = System.currentTimeMillis(); try { Connection connection = SimpleDataSourceDemo.getConnection(); long end = System.currentTimeMillis(); System.out.println(end - start); ResultSet resultSet = connection.prepareStatement("select * from testtb").executeQuery(); while (resultSet.next()){ System.out.println(resultSet.getInt("id")+","+resultSet.getString(2)+","+resultSet.getString(3)); } connection.close(); start = System.currentTimeMillis(); connection = SimpleDataSourceDemo.getConnection(); end = System.currentTimeMillis(); System.out.println(end - start); start = System.currentTimeMillis(); resultSet = connection.prepareStatement("select * from testtb").executeQuery(); end = System.currentTimeMillis(); System.out.println(end - start); while (resultSet.next()){ System.out.println(resultSet.getInt("id")+","+resultSet.getString(2)+","+resultSet.getString(3)); } } catch (SQLException e) { e.printStackTrace(); } } }
public class MyConnectionCustomizer implements ConnectionCustomizer { public void onAcquire(Connection c, String parentDataSourceIdentityToken) throws Exception { System.out.println("acquire is invoke ================================="+parentDataSourceIdentityToken); } public void onDestroy(Connection c, String parentDataSourceIdentityToken) throws Exception { System.out.println("destory is invoke ================================="+parentDataSourceIdentityToken); } public void onCheckOut(Connection c, String parentDataSourceIdentityToken) throws Exception { System.out.println("checkout is invoke ================================="+parentDataSourceIdentityToken); } public void onCheckIn(Connection c, String parentDataSourceIdentityToken) throws Exception { System.out.println("checkIn is invoke ================================="+parentDataSourceIdentityToken); } }
相关文章推荐
- 如何在asp.net中使用多线程及队列,异步处理一个耗时的任务(原创)
- Java8新特性学习(一)Lambda表达式介绍
- 设计模式六大原则
- C语言中关于指针的学习
- VBA Study Notes
- VBA Study Notes
- VBA Study Notes
- VBA Study Notes
- VBA Study Notes
- VBA Study Notes
- VBA Study Notes
- [Java] 静态方法与非静态方法的区别
- java 位运算
- leetcode整理(java)
- asp.net连接数据库 windows身份验证模式
- [Java] 获取当前时间的年月日的方法
- 堆排序总结
- php中面向对象的概念
- Java高级特性之解析XML
- 脚本编程技术