博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DBCP性能测试
阅读量:6657 次
发布时间:2019-06-25

本文共 3542 字,大约阅读时间需要 11 分钟。

hot3.png

package com.shen.dbcp.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class DBCPTestRunnable implements Runnable { public int flag = 0; public int selectcount = 0; SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private static final Log log = LogFactory.getLog(DBCPTestRunnable.class); @Override public void run() {  flag = TestExecutorService.getFlag();  log.info("线程flag:" + flag + "----run时间:" + df.format(new Date()));  while (true) {   Connection conn = null;   try {    conn = TestExecutorService.bds.getConnection();   } catch (SQLException e1) {    // TODO Auto-generated catch block    e1.printStackTrace();    log.error(e1);   }   log.info("flg:" + flag + "-----获取连接时间" + df.format(new Date()));   Statement stmt = null;   ResultSet rs = null;   try {    Thread.sleep(1000);   } catch (InterruptedException e) {    e.printStackTrace();    log.error(e);   }   try {    selectcount++;    String sql = "select * from dept t where DEPTNO = ";    sql += "'" + String.valueOf(selectcount) + "'";    stmt = conn.createStatement();    rs = stmt.executeQuery(sql);    log.info("thread flg:" + flag + "----" + "当前选择ID:"      + selectcount + "----查询时间" + df.format(new Date()));    while (rs.next()) {     log.info("thread flg:" + flag + "----" + "当前选择ID:"       + selectcount + "结果集:" + rs.getInt(1) + "\t"       + rs.getString(2) + "\t\t" + rs.getString(3));    }   } catch (Exception e) {    e.printStackTrace();    log.error(e);   } finally {// 释放连接    try {     if (rs != null)      rs.close();     if (stmt != null)      stmt.close();     if (conn != null)      conn.close();    } catch (Exception ex) {     ex.printStackTrace();     log.error(ex);    }   }  } }}
package com.shen.dbcp.test;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import java.util.Map;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;import org.apache.commons.dbcp.BasicDataSource; public class TestExecutorService { public static BasicDataSource bds = new BasicDataSource(); public static int count = 0; public static synchronized int getFlag() {  count++;  return count; }  public static void main(String[] args) {  //初始化连接池属性  bds.setUsername("scott");  bds.setPassword("tiger");  bds.setUrl("jdbc:oracle:thin:@10.1.2.133:1521:test");  bds.setDriverClassName("oracle.jdbc.driver.OracleDriver");  int initsize = 4;  int maxactive = 10;  int maxidle = 5;  int minidle = 3;  int maxwait = 60000;  bds.setInitialSize(initsize);  bds.setMaxActive(maxactive);  bds.setMaxIdle(maxidle);  bds.setMaxWait(maxwait);  // bds.setRemoveAbandoned(true);  // bds.setLogAbandoned(true);  // bds.setRemoveAbandonedTimeout(180);  // bds.setTestOnBorrow(true);  // bds.setTestOnReturn(true);  // bds.setTestWhileIdle(true);  // bds.setValidationQuery("SELECT COUNT(*) FROM person");     // bds.setValidationQueryTimeout(60);  Thread thread = new Thread(new Runnable() {   public void run() {    ScheduledExecutorService seserver = Executors.newScheduledThreadPool(100);    for(int i=0;i<30;i++){     seserver.scheduleAtFixedRate(new DBCPTestRunnable(), 0, 1, TimeUnit.SECONDS);    }   }  });  thread.start(); }}

转载于:https://my.oschina.net/dongmenfeishu/blog/215079

你可能感兴趣的文章
使用VS2010编译MongoDB C++驱动详解
查看>>
负载均衡(Load Balancing)学习笔记(三)
查看>>
Swing系统中实现帮助文档方法
查看>>
jquery设置和获得checkbox选中问题
查看>>
MySQL修改root密码的各种方法整理
查看>>
少女时代擦玻璃屏保
查看>>
我试试
查看>>
vi 命令 用法
查看>>
星际争霸1的AI设计思路:以人族开局为例
查看>>
我的友情链接
查看>>
查看系统内存 cpu占用率脚本
查看>>
我的友情链接
查看>>
python实例练习-01登录
查看>>
awk编程
查看>>
H3C SR6604 升级IOS
查看>>
Linux 进程与服务管理1
查看>>
我的友情链接
查看>>
一个前端所需具备的PS能力
查看>>
Exchange 2010 (二) MBX DAG部署
查看>>
vim使用
查看>>