连接池-DBCPUtils工具类(dbcp)
发布日期:2021-06-30 18:40:59
浏览次数:6
分类:技术文章
本文共 2649 字,大约阅读时间需要 8 分钟。
一、合建properties文件
在src目录下创建一个名为“dbcpconfig.properties”的文件,里面的内容为:
#连接设置driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/数据库名username=rootpassword=# initialSize=10#最大连接数量maxActive=50# maxIdle=20# minIdle=5# maxWait=60000#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;] #注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。connectionProperties=useUnicode=true;characterEncoding=utf8#指定由连接池所创建的连接的自动提交(auto-commit)状态。defaultAutoCommit=true#driver default 指定由连接池所创建的连接的只读(read-only)状态。#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)defaultReadOnly=#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLEdefaultTransactionIsolation=REPEATABLE_READ
二、创建DBCPUtils
/** * @author CSDN_LQR * @TODO dbcp工具类(数据库连接池工具),用于管理多个数据库连接对象 */public class DBCPUtils { static DataSource ds = null; static { try { // 得到配置文件 Properties prop = new Properties(); prop.load(DBCPUtils.class.getClassLoader().getResourceAsStream( "dbcpconfig.properties")); // 根据配置文件创建数据库连接池(数据源) ds = BasicDataSourceFactory.createDataSource(prop); } catch (Exception e) { throw new ExceptionInInitializerError("DBCP初始化异常,请检查配置文件!!!"); } } /** * 得到数据库连接对象 * * @return */ public static Connection getConnection() { try { return ds.getConnection(); } catch (SQLException e) { throw new RuntimeException("服务器忙。。。"); } } /** * 关闭所有资源连接 * * @param conn * @param ps * @param rs */ public static void releaseAll(Connection conn, Statement ps, ResultSet rs) { if (conn != null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn = null; } if (ps != null) { try { ps.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } ps = null; } if (rs != null) { try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } rs = null; } }}
三、注意
1、release()方法中的conn.close()并不是直接关闭数据库的Connection对象,而是将Connection对象放回到连接池中(这里使用了装饰模式,改变close的原来作用)。
2、使用dbcp需要导入三个jar包,分别是 3、该DBCPUtils与的不同在于,前者加入了连接池管理Connection对象,提高了性能。转载地址:https://linqiarui.blog.csdn.net/article/details/52875985 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月01日 08时50分32秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python - 抓取汇率数据分析美元和欧元对RMB的变化曲线
2019-04-27
python 数据科学 - 【回归分析】 ☞ 线性回归(1)
2019-04-27
python 数据科学 - 【回归分析】 ☞ 线性回归(2)
2019-04-27
python - 批量更改文件名(过滤掉某个字符串)
2019-04-27
python 数据科学 - 【分类模型】 ☞ 决策树
2019-04-27
python - zip、numpy.c 函数
2019-04-27
python 数据科学 - 【分类模型】 ☞ 逻辑回归
2019-04-27
python 数据科学 - 【分类模型】 ☞ 稳健滴 SVM 支持向量机
2019-04-27
python - selenium 处理 alert
2019-04-27
Java - Set、List、Map
2019-04-27
Java - OnlyLady Spider(HttpClient 4.5 )
2019-04-27
Math - 高斯分布(正态分布)
2019-04-27
android学习笔记----简易音乐播放器原理
2019-04-27
Unity编辑器扩展——标签属性Attribute
2019-04-27
Unity中实现拖拽操作
2019-04-27
Unity中的UGUI事件系统
2019-04-27
C#中的常量
2019-04-27
C#中的静态变量与非静态变量
2019-04-27
C#中的ref、out、params关键字
2019-04-27