import java.io.InputStream;
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Properties;

 import javax.sql.DataSource;

 import org.apache.commons.dbcp.BasicDataSourceFactory;

 public class DBCPUtil {
     private static DataSource dataSource;
     //使用静态代码块,使驱动在调用工具类时就被加载,且只加载一次
     static {
         try {
             //首先,创建Properties对象,用于加载properties配置文件
             Properties prop = new Properties();
             //获取dbcp配置文件输入流
             InputStream inStream = Thread.currentThread().getContextClassLoader()
                     .getResourceAsStream("dbcp.properties");
             /*
              * 注:配置文件中的key必须满足BasicDataSource
             中的setter属性,即key的值为BasicDataSource中设置连接属性"setDriverClassName(str)等几个方法中的后半部分,
             即driverClassName,Username,Url,Password以及InitialSize(连接池启动时创建的初始化连接数量)"*/

             //加载配置文件
             prop.load(inStream);
             /*
                 使用BasicDataSourceFactory的静态方法createSource(prop),
             通过已经加载了properties文件的prop对象创建DataSource连接池对象;*/
             dataSource = BasicDataSourceFactory.createDataSource(prop);
         } catch (Exception e) {
             e.printStackTrace();
         }
     }

     //返回Connection对象的方法
     public static Connection getConnec() {
         //使用DataSource的getConnection方法创建Connection对象
         try {
             return dataSource.getConnection();
         } catch (SQLException e) {
             e.printStackTrace();
         }
         return null;
     }

     //关闭资源的方法,及其异常处理
     public static void close(ResultSet rSet, Statement state, Connection connec) {
         try {
             if (rSet != null)
                 rSet.close();
         } catch (SQLException e) {
             e.printStackTrace();
         } finally {

             try {
                 if (state != null)
                     state.close();
             } catch (SQLException e) {
                 e.printStackTrace();
             } finally {

                 try {
                     if (connec != null)
                         connec.close();
                 } catch (SQLException e) {
                     e.printStackTrace();
                 }
             }
         }
     }
 }
//这是properties文件的内容

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

DBCP--""连接池创建"与"资源关闭"Util类的更多相关文章

  1. java使用DBCP连接池创建工具类

    1.说明 java中有个扩展包 javax下面有个DataResource的接口  javax.sql.DataResource 该接口定义了连接池的方法规范 而DBCP框架有apache公司开发,他 ...

  2. DBCP 连接池

    DBCP数据源 DBCP 是 Apache 软件基金组织下的开源连接池实现 导入maven包: <!-- dbcp连接池 --> <dependency> <groupI ...

  3. DBCP连接池配置参数说明

    <!-- 数据源1 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicData ...

  4. dbcp连接池配置参数

    1.<!-- 数据源1 --> 2. <bean id="dataSource" 3. class="org.apache.commons.dbcp.B ...

  5. DBCP连接池原理分析及配置用法

    DBCP连接池介绍 ----------------------------- 目前 DBCP 有两个版本分别是 1.3 和 1.4. DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 ...

  6. JNDI和在tomcat中配置DBCP连接池 元数据的使用 DBUtils框架的使用 多表操作

    1 JNDI和在tomcat中配置DBCP连接池 JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.namin ...

  7. DBCP连接池配置(DBCPUtils.java)

    配置文件 db_dbcp.properites driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/db?useSSL= ...

  8. Java基础-DBCP连接池(BasicDataSource类)详解

    Java基础-DBCP连接池(BasicDataSource类)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程 ...

  9. (数据库)DBCP连接池配置参数说明

    <!-- 数据源1 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicData ...

随机推荐

  1. wampserver下打开phpMyAdmin出现403错误的问题解决方法

    图1 图2 wamp下打开phpMyAdmin出现403错误的问题解决方法安装完wamp后打开其下的phpMyAdmin也就是路径http://localhost/phpmyadmin/ 出现[图一] ...

  2. ASP.NET项目从VS2008迁移至VS2010或2012编译不过的问题

    这次将一个VS2008编写的网站迁移至VS2010或者2012下都编译不通过,统统报相同的错误:缺少System.Linq引用,缺少System.Xml.Linq引用,但是明明有引用啊,引用DLL我都 ...

  3. Mac下配置cocos2d-x开发环境(android和ios)

    一.下载cocos2d-x http://cocos2d-x.org/projects/cocos2d-x/wiki/Download cocos2d-x-2.1.4.zip @ June.18, 2 ...

  4. C#“同步调用”、“异步调用”、“异步回调”

    本文将主要通过“同步调用”.“异步调用”.“异步回调”三个示例来讲解在用委托执行同一个“加法类”的时候的的区别和利弊. 首先,通过代码定义一个委托和下面三个示例将要调用的方法: ); //模拟该方法运 ...

  5. 分布式缓存技术redis学习(三)——redis高级应用(主从、事务与锁、持久化)

    上文<详细讲解redis数据结构(内存模型)以及常用命令>介绍了redis的数据类型以及常用命令,本文我们来学习下redis的一些高级特性.目录如下: 安全性设置 设置客户端操作秘密 客户 ...

  6. Linux上安装使用boost入门指导

    Data Mining Linux上安装使用boost入门指导 获得boost boost分布 只需要头文件的库 使用boost建立一个简单的程序 准备使用boost二进制文件库 把你的程序链接到bo ...

  7. tachyon 配置项

    Tachyon 配置参数分为4类:Master,Worker, Common (Master and Worker), and User configurations. 环境变量配置文件在$TACHY ...

  8. JavaScript 之 执行前台函数

    1.OnClientClick (vs2003不支持这个方法) <asp:Button ID="Button" runat="server" Text=& ...

  9. Android(java)学习笔记266:Android线程形态之 IntentService

    1. IntentService原理 IntentService是一种特殊的Service,既然是Service,使用的时候记得在AndroidManifest清单文件中注册. 并且它是一个抽象类,因 ...

  10. Java中String常用方法

    java中String的常用方法1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len= ...