DBCP连接池的创建

实现连接池

使用两个Jar文件来实现: 

	文件是apache提供的 : dbcp.jar(连接池) pool.jar(连接池实现的依赖库)




1.	这个线程池会预读本地文件 , 进行数据库的连接配置:  

	需要在src根目录, 创建一个properties文件: 

		#驱动地址
		driverClassName=oracle.jdbc.OracleDriver
		#连接地址
		url=jdbc:oracle:thin:@localhost:1521
		#帐号
		username=system
		#密码
		password=123456

		#初始化的连接数量
		initialSize=10
		#最大的连接数量
		maxActive=200
		#最大空闲连接数量
		maxIdle=10
		#最小的空闲连接诶数量
		minIdle=1
		#超时时间(毫秒)
		maxWait=15000

2.	在Java代码中, 将上面的配置文件, 变为Properties对象

	InputStream is = DBCPUtil.class.getClassLoader().getResourceAsStream("dbcp.properties");
		Properties ppt = new Properties();
		//加载一个流指向的文件
		ppt.load(is);

3.	通过连接池工厂对象 获取一个连接池
	DataSource ds = BasicDataSourceFactory.createDataSource(ppt);

4.	获取连接对象

	Connection conn = ds.getConnection();

5.	使用完毕连接 , 正常关闭连接即可, 连接池会自动回收!

创建数据库连接池

编写properies配置文件

配置文件具体内容如下:
	#驱动地址
	driverClassName=oracle.jdbc.OracleDriver
	#连接池
	url=jdbc:oracle:thin:@localhost:1521:XE
	#账号
	username=scott
	#密码
	password=tiger
	#最大连接数量
	maxAcive=100
	#初始连接数量
	initialSize=5
	#最大空闲连接数量
	maxIdle=5
	#最小空闲连接数量
	minIdle=3
	#超时等待时间
	maxWait=1000

编写数据连接池工具类

具体实现代码如下:
	import javax.sql.DataSource;
	import java.io.InputStream;
	import java.sql.Connection;
	import java.sql.ResultSet;
	import java.sql.Statement;
	import java.util.Properties;
	
	/**
	 * @Auther: 
	 * @Date: 2018/12/24 16:03
	 * @Description: 创建一个连接池工具类
	 */
	public class DBCPUtil {
	
	    private static DataSource dataSource;
	
	    static{
	        try{
	            //1、将properties文件夹在到输入流中
	            InputStream is = DBCPUtil.class.getClassLoader()
					.getResourceAsStream("dbcp.properties");
	            //2、创建properties对象,用于读取第一步得到的输入流
	            Properties ps = new Properties();
	            //3、使用上述的properties对象,加载本地的properties文件
	            ps.load(is);
	            //4、使用连接池工厂类,创建连接池对象
	            DataSource dataSource = BasicDataSourceFactory
					.createDataSource(ps);
	        }catch (Exception e){
	            e.printStackTrace();
	        }
	    }
	
	    //用于从连接池中,获取一个连接对象的操作方法
	    public static Connection getConnection(){
	        try{
	           return dataSource.getConnection();
	        }catch (Exception e){
	            e.printStackTrace();
	            return null;
	        }
	    }
	
	    //用于释放数据库的连接资源
	    public static void close(Connection conn, Statement state,
			 ResultSet resultSet){
	        try{
	            if(conn!=null){
	                conn.close();
	                conn = null;
	            }
	            if(state!=null){
	                state.close();
	                state = null;
	            }
	            if (resultSet!=null){
	                resultSet.close();
	                resultSet = null;
	            }
	        }catch (Exception e){
	            e.printStackTrace();
	        }
	    }
	}
原文地址:https://www.cnblogs.com/itcainiao2521/p/10168919.html