当前位置: 首页> 学习园地

新mg电子游戏手机版实训-思想过度-连接池(二)-哈尔滨Java培训

2017-12-08 10:21:09更新

哈尔滨Java培训 

思想过度-连接池(二)-连接池原理

 

//模拟数据库连接池,但不具备实际开发

public class SimulateDateSource {

// 创建一个连接的池子--集合,线程安全的问题

private static LinkedList<Connection> pool = (LinkedList<Connection>) Collections

.synchronizedList(new LinkedList<Connection>());

 

// 在连接池中初始化10个连接

static {

try {

for (int i = 0; i < 10; i++) {

Connection conn = DBUtil.getConnection();

pool.add(conn);

}

} catch (Exception e) {

// 将异常向上抛

throw new ExceptionInInitializerError("初始化连接池失败!");

}

}

 

//获取连接,从连接池中取得一个连接

public static Connection getConnectionFromPool(){

Connection conn = null;

if(pool.size()>0){ //说明池子里还有连接

  conn =  pool.removeFirst();  //移除并返回对象

  return conn;

}else{

  throw new RuntimeException("服务器正忙.......");

  //服务器正忙的解决思路:

  //1.等待

  //2.等待超时新创建一个连接用DBUtil产生,用完之后,不用交回池,真的close()

}

}

 

//释放资源,把连接还回池中

public static void release(Connection conn){

pool.addLast(conn);

}

哈尔滨Java培训