zoukankan      html  css  js  c++  java
  • 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();
    	        }
    	    }
    	}
  • 相关阅读:
    ffmpeg 转换VC工具已经可以生成工程文件
    ffmpeg 转换VC工具已经可以生成工程文件(续)
    ffmpeg 转换VC工具 V1.1.1
    ffmpeg 转换VC工具已经可以生成工程文件(续)
    ffmpeg 工程代码半自动转换vc工具
    ffmpeg 转换VC工具 V1.1.1
    lua 解析ffmpeg结构体时候用的正则表达式
    ffmpeg 工程代码半自动转换vc工具
    lua 解析ffmpeg结构体时候用的正则表达式
    ffmpeg 转换VC工具已经可以生成工程文件
  • 原文地址:https://www.cnblogs.com/itcainiao2521/p/10168919.html
Copyright © 2011-2022 走看看