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();
    	        }
    	    }
    	}
  • 相关阅读:
    项目常用组建摘记
    How do I resolve the CodeSign error: CSSMERR_TP_NOT_TRUSTED?
    使用wkwebview后,页面返回不刷新的问题
    前端性能监控方案window.performance 调研(转)
    UC浏览器中,设置了position: fixed 的元素会遮挡z-index值更高的同辈元素
    zepto中给不存在的元素设置样式并绑定事件的坑
    js中的路由匹配
    input光标高度问题
    javascript创建css、js,onload触发callback兼容主流浏览器的实现
    js input输入事件兼容性问题
  • 原文地址:https://www.cnblogs.com/itcainiao2521/p/10168919.html
Copyright © 2011-2022 走看看