数据库连接池Java实现小结

http://tech.ddvip.com   2006年11月25日    社区交流

本文详细介绍数据库连接池Java实现小结

/*
* Created on 2003-5-13
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package scut.ailab.connectionpool;
/**
* @author youyongming
*
*/
import java.sql.*;
public class testmypool {
public void test1()
{
 String user = "DevTeam";
 String password = "DevTeam";
 String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
 String url = "jdbc:odbc:gfqh2";
 ConnectionParam param = new ConnectionParam(driver,url,user,password);
 ConnectionFactory cf = null;//new ConnectionFactory(param, new FactoryParam());
 try{
 cf = new ConnectionFactory(param,new FactoryParam());
 Connection conn1 = cf.getFreeConnection();
 Connection conn2 = cf.getFreeConnection();
 Connection conn3 = cf.getFreeConnection();
 Statement stmt = conn1.createStatement();
 ResultSet rs = stmt.executeQuery("select * from requests");
 if (rs.next())
 {
  System.out.println("conn1 y"); 
 }
 else
 {
  System.out.println("conn1 n"); 
 }
 stmt.close();
 conn1.close(); 
 Connection conn4 = cf.getFreeConnection();
 Connection conn5 = cf.getFreeConnection();
 stmt = conn5.createStatement();
 rs = stmt.executeQuery("select * from requests");
 if (rs.next())
 {
  System.out.println("conn5 y"); 
 }
 else
 {
  System.out.println("conn5 n"); 
 }
 conn2.close();
 conn3.close();
 conn4.close();
 conn5.close();
 }
 catch(Exception e)
 {
 e.printStackTrace();
 }
 finally{
 try{
  cf.close();
 }
 catch(Exception e)
 {
  e.printStackTrace();
 }
 }
}
public static void main(String[] args) {
 String user = "DevTeam";
 String password = "DevTeam";
 String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
 String url = "jdbc:odbc:gfqh2";
 ConnectionParam param = new ConnectionParam(driver,url,user,password);
 ConnectionFactory cf = null;//new ConnectionFactory(param,new FactoryParam());
 try{
 cf = new ConnectionFactory(param,new FactoryParam());
 ConnectionFactory cf1= new ConnectionFactory(param,new FactoryParam());
 Connection conn1 = null;
 long time = System.currentTimeMillis();
 for (int i=0; i <10;i++)
 {
  conn1 = cf.getFreeConnection();
  Statement stmt = conn1.createStatement();
  ResultSet rs = stmt.executeQuery("select * from requests");
  if (rs.next())
  {
  System.out.println("conn1 y"); 
  }
  else
  {
  System.out.println("conn1 n"); 
  }
  conn1.close(); 
 }
 System.out.println("pool:" + (System.currentTimeMillis()-time));
 time = System.currentTimeMillis();
 Class.forName(param.getDriver()).newInstance();
 for (int i=0; i <10;i++)
 {
  conn1 = DriverManager.getConnection(param.getUrl(),
      param.getUser(), param.getPassword()); 
  Statement stmt = conn1.createStatement();
  ResultSet rs = stmt.executeQuery("select * from requests");
  if (rs.next())
  {
  System.out.println("conn1 y"); 
  }
  else
  {
  System.out.println("conn1 n"); 
  }
  conn1.close(); 
 } 
 System.out.println("no pool:" + (System.currentTimeMillis()-time));
 }
 catch(Exception e)
 {
 e.printStackTrace();
 }
 finally{
 try{
  cf.close();
 }
 catch(Exception e)
 {
  e.printStackTrace();
 }
 }
}
}

责编:豆豆技术应用

正在加载评论...