日期:2014-05-16  浏览次数:20488 次

数据库连接池(没加线程同步)

?

package conn;

import java.sql.*;
import java.util.* ;
public class Connpool {
	List<Connection> live=new ArrayList<Connection>() ;
	List<Connection> detail=new ArrayList<Connection>() ;
	public List<Connection> addConn(int i){
		for(int t=0;t<i;t++){
		   live.add(this.getConn()) ;
		}
		return live ;
	}
	public Connection getConn(){
		Connection conne=null ;
		try{
		Class.forName("com.mysql.jdbc.Driver");
		conne=DriverManager.getConnection("jdbc:mysql://localhost:3306/lring","root","root") ;
		}catch(Exception e){
			e.printStackTrace() ;
		}
		return conne ;
	}
	public void close(Connection conn){
		this.live.add(conn) ;
		this.detail.remove(conn) ;
	}
	 public Connection  ceshi(){
		Connection ccvt1=this.live.get(0) ;
		this.detail.add(ccvt1) ;
		this.live.remove(ccvt1) ;
		this.close(ccvt1) ;
		return ccvt1 ;
	}
	 static public void main(String[] args){
		 Connpool pool=new Connpool() ;
		 long s1=System.nanoTime() ;
		  pool.addConn(5) ;
		 long s2=System.nanoTime() ;
		 System.out.println(s2-s1) ;
		 for(int a=0;a<100;a++){
			 Connection cnn= pool.ceshi() ;
			System.out.println(cnn.hashCode()) ;
			 System.out.println("执行次数为"+a) ;
		 }
	 }
}