分享

测试用DBCP连接池和不用DBCP连接池对数据库的访问效率

 dawn001 2014-04-02
 测试用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);
}
}
}

这个测试类是在我发表的前一条日志的基础上做的,大家来点评点评。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约