DBCP--""连接池创建"与"资源关闭"Util类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DBCP--""连接池创建"与"资源关闭"Util类相关的知识,希望对你有一定的参考价值。

 1 package cn.itsource._03_dbcp;
 2 
 3 import java.io.InputStream;
 4 import java.sql.Connection;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.sql.Statement;
 8 import java.util.Properties;
 9 
10 import javax.sql.DataSource;
11 
12 import org.apache.commons.dbcp.BasicDataSourceFactory;
13 
14 public class DBCPUtil {
15     private static DataSource dataSource;
16     //使用静态代码块,使驱动在调用工具类时就被加载,且只加载一次
17     static {
18         try {
19             //首先,创建Properties对象,用于加载properties配置文件
20             Properties prop = new Properties();
21             //获取dbcp配置文件输入流
22             InputStream inStream = Thread.currentThread().getContextClassLoader()
23                     .getResourceAsStream("dbcp.properties");
24             /*
25              * 注:配置文件中的key必须满足BasicDataSource
26             中的setter属性,即key的值为BasicDataSource中设置连接属性"setDriverClassName(str)等几个方法中的后半部分,
27             即driverClassName,Username,Url,Password以及InitialSize(连接池启动时创建的初始化连接数量)"*/
28             
29             //加载配置文件
30             prop.load(inStream);
31             /*
32                 使用BasicDataSourceFactory的静态方法createSource(prop),
33             通过已经加载了properties文件的prop对象创建DataSource连接池对象;*/
34             dataSource = BasicDataSourceFactory.createDataSource(prop);
35         } catch (Exception e) {
36             e.printStackTrace();
37         }
38     }
39 
40     //返回Connection对象的方法
41     public static Connection getConnec() {
42         //使用DataSource的getConnection方法创建Connection对象
43         try {
44             return dataSource.getConnection();
45         } catch (SQLException e) {
46             e.printStackTrace();
47         }
48         return null;
49     }
50 
51     //关闭资源的方法,及其异常处理
52     public static void close(ResultSet rSet, Statement state, Connection connec) {
53         try {
54             if (rSet != null)
55                 rSet.close();
56         } catch (SQLException e) {
57             e.printStackTrace();
58         } finally {
59 
60             try {
61                 if (state != null)
62                     state.close();
63             } catch (SQLException e) {
64                 e.printStackTrace();
65             } finally {
66 
67                 try {
68                     if (connec != null)
69                         connec.close();
70                 } catch (SQLException e) {
71                     e.printStackTrace();
72                 }
73             }
74         }
75     }
76 }

 

//这是properties文件的内容

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbcdemo
username=root
password=4230
initialSize=5

 

以上是关于DBCP--""连接池创建"与"资源关闭"Util类的主要内容,如果未能解决你的问题,请参考以下文章

ssh+连接池配置出现的问题

求救!!!数据库连接池出错

Spring Apache Commons DBCP池配置

JAVA连接池技术

mybatisSpring整合(eclipse)以及事务管理

Hibernate多库连接池