自定义简易JDBC连接池及测试
package com.demo.myDataSource; import java.sql.Connection; import java.util.LinkedList; import javax.sql.DataSource; import com.demo.jdbc.jdbcUtils; /** * @author Administrator * 自定义连接池 */ public class MyDataSource { //创建集合作为存放connection对象的池子 static LinkedList<Connection> pool = new LinkedList<Connection>(); static{ //初始化连接池(默认初始化3个) for(int i = 0;i<3;i++){ Connection conn; try { conn = jdbcUtils.getConnection(); pool.addLast(conn); } catch (Exception e) { e.printStackTrace(); } } } //获取连接 public static Connection getConnection(){ //从pool集合中拿去一个connection连接对象 if(pool.isEmpty()){ //如果池子空了,再添加2个连接对象 for(int i = 0;i<2;i++){ Connection conn; try { conn = jdbcUtils.getConnection(); pool.addLast(conn); } catch (Exception e) { e.printStackTrace(); } } } System.out.println("从连接池中获取的连接对象"); //不空,则返回第一个连接对象 return pool.removeFirst(); } //释放连接(归还连接) public static void releaseConnection(Connection conn){ pool.addLast(conn); System.out.println("连接已经归还"); } }
package com.demo.myDataSource; import java.sql.Connection; import java.util.LinkedList; import javax.sql.DataSource; import com.demo.jdbc.jdbcUtils; /** * @author Administrator * 自定义连接池 */ public class MyDataSource { //创建集合作为存放connection对象的池子 static LinkedList<Connection> pool = new LinkedList<Connection>(); static{ //初始化连接池(默认初始化3个) for(int i = 0;i<3;i++){ Connection conn; try { conn = jdbcUtils.getConnection(); pool.addLast(conn); } catch (Exception e) { e.printStackTrace(); } } } //获取连接 public static Connection getConnection(){ //从pool集合中拿去一个connection连接对象 if(pool.isEmpty()){ //如果池子空了,再添加2个连接对象 for(int i = 0;i<2;i++){ Connection conn; try { conn = jdbcUtils.getConnection(); pool.addLast(conn); } catch (Exception e) { e.printStackTrace(); } } } System.out.println("从连接池中获取的连接对象"); //不空,则返回第一个连接对象 return pool.removeFirst(); } //释放连接(归还连接) public static void releaseConnection(Connection conn){ pool.addLast(conn); System.out.println("连接已经归还"); } }