测试用DBCP连接池和不用DBCP连接池对数据库的访问效率 package com.pccw.test.util; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class TestDBCPFunctionsByTimes implements Runnable{ private long dateTime1=0; private static int count=0; public static void main(String[] args) { //System.out.println("main start"); TestDBCPFunctionsByTimes test=new TestDBCPFunctionsByTimes(); test.startup(); //System.out.println("main over"); } public void startup(){ for (int i = 0; i <80; i++) { Thread t=new Thread(this); t.start(); } } @Override public void run() { if(dateTime1==0){ //当第一个线程进入时开始记录时间 dateTime1=System.currentTimeMillis(); System.out.println("dateTime1 is "+dateTime1); } String sql="select ID,ACCT_NAME from ACCOUNT_ACT where ID=?";//自己写 try { for (int i = 0; i <10; i++) { Connection conn=ConnectionUtils.getConnection(); //ConnectionUtils工具类在我的博客之中 //Connection conn=NormalConnectionUtils.getConnection(); PreparedStatement pstm=conn.prepareStatement(sql); pstm.setInt(1, 1); ResultSet rs=pstm.executeQuery(); while(rs.next()){ String accountID=rs.getString("ID"); String accountName=rs.getString("ACCT_NAME"); //System.out.println("accountID is "+accountID+" , accountName is "+accountName); } ConnectionUtils.close(rs, pstm); //NormalConnectionUtils.close(rs, pstm, conn); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }/*finally{ ConnectionUtils.close(rs, pstm); }*/ count++; if(count==80){ long dateTime2=System.currentTimeMillis(); long result=dateTime2-dateTime1; System.out.println("dateTime2 is "+dateTime2); System.out.println(count+"个线程平均每个线程做10次访问数据库的中的时间为 " + result); } } } 这个测试类是在我发表的前一条日志的基础上做的,大家来点评点评。 |
|
来自: dawn001 > 《测试dbcp连接池效率》