package com.frameworkset.common; import java.sql.Connection; import java.sql.SQLException; import javax.transaction.RollbackException; import com.frameworkset.common.poolman.DBUtil; import com.frameworkset.orm.transaction.TransactionException; import com.frameworkset.orm.transaction.TransactionManager; public class TestConnection { static long max = 0; public static void getConntectionTest() { try { long s = System.currentTimeMillis(); Connection con = DBUtil.getConection(); long end = System.currentTimeMillis(); max = max < (end - s)?(end -s):max; System.out.println("获取connection耗时:" + (end - s) + "毫秒."); con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { try { long s = System.currentTimeMillis(); System.out.println("获取connection前空闲:" +DBUtil.getNumIdle() + "个."); TransactionManager tm = new TransactionManager(); tm.begin(); Connection con = DBUtil.getConection(); Connection connn = DBUtil.getDataSource(null).getConnection(); System.out.println("获取connection耗时空闲:" +DBUtil.getNumIdle() + "个."); Connection con1 = DBUtil.getConection(); long end = System.currentTimeMillis(); System.out.println("获取connection1耗时空闲:" +DBUtil.getNumIdle() + "个."); con.close(); con1.close(); tm.commit(); System.out.println("获取connection1后空闲:" +DBUtil.getNumIdle() + "个."); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (RollbackException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransactionException e) { // TODO Auto-generated catch block e.printStackTrace(); } // try { // Class r = Runtime.getRuntime().getClass(); // java.lang.reflect.Method m = r.getDeclaredMethod( // "addShutdownHook", new Class[] { Thread.class }); // m.invoke(Runtime.getRuntime(), new Object[] { new Thread( // new ShutDown()) }); // } catch (Exception e) { // e.printStackTrace(); // } // for(int i = 0; i < 10; i ++) // { // T t = new T(); // t.start(); // } } static class T extends Thread { public void run() { int i = 0; while(i < 100) { i ++ ; getConntectionTest(); try { sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } static class ShutDown implements Runnable { public void run() { System.out.println("获取链接的最长时间:" + max + "毫秒."); } } }