DBCP数据源

DBCP 是 Apache 软件基金组织下的开源连接池实现,要使用DBCP数据源,需要应用程序应在系统中增加如下两个 jar 文件:

  • Commons-dbcp.jar:连接池的实现
  • Commons-pool.jar:连接池实现的依赖库

 Tomcat 的连接池正是采用该连接池来实现的。该数据库连接池既可以与应用服务器整合使用,也可由应用程序独立使用。

在应用程序中加入dbcp连接池

1.导入 commons-dbcp-1.2.jar、commons-pool-1.6.jar包

2. 在类目录下加入dbcp的配置文件:dbcpconfig.properties

dbcpconfig.properties的配置信息如下:

#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbcstudy
username=root
password=XDP#<!-- 初始化连接 -->
initialSize=10#最大连接数量
maxActive=50#<!-- 最大空闲连接 -->
maxIdle=20#<!-- 最小空闲连接 -->
minIdle=5#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
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, SERIALIZABLE
defaultTransactionIsolation=READ_UNCOMMITTED

3、在获取数据库连接的工具类(如jdbcUtils)的静态代码块中创建池

package com.company;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;
/**
* @ClassName: JdbcUtils_DBCP
* @Description: 数据库连接工具类
* @author: sunyan
* @date: 2018-10-4 下午6:04:36
*
*/ public class JdbcUtils_DBCP {/*** 在java中,编写数据库连接池需实现java.sql.DataSource接口,每一种数据库连接池都是DataSource接口的实现* DBCP连接池就是java.sql.DataSource接口的一个具体实现*/private static DataSource ds = null;//在静态代码块中创建数据库连接池static{try{//加载dbcpconfig.properties配置文件InputStream in = JdbcUtils_DBCP.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");Properties prop = new Properties();prop.load(in);//创建数据源ds = BasicDataSourceFactory.createDataSource(prop);}catch (Exception e) {throw new ExceptionInInitializerError(e);}}public static Connection getConnection() throws SQLException{//从数据源中获取数据库连接return ds.getConnection();}public static void release(Connection conn,Statement st,ResultSet rs){if(rs!=null){try{//关闭存储查询结果的ResultSet对象rs.close();}catch (Exception e) {e.printStackTrace();}rs = null;}if(st!=null){try{//关闭负责执行SQL命令的Statement对象st.close();}catch (Exception e) {e.printStackTrace();}}if(conn!=null){try{//将Connection连接对象还给数据库连接池conn.close();}catch (Exception e) {e.printStackTrace();}}}
}

 3.测试DBCP数据源

package com.company;import java.sql.*;public class dbcpDataSourceTest {public static void main(String[] args) {try {Connection conn=JdbcUtils_DBCP.getConnection();//通过数据库的连接操作数据库,实现增删改查(使用Statement类)String sql=""+"insert into sensor_static(obj_ver,protSize,beginTime,connectStatic,information,endTime) values("+"?,?,?,?,?,?)";PreparedStatement pst=conn.prepareStatement(sql);pst.setLong(1,1);pst.setInt(1,0);pst.setString(2,"protSize");pst.setTimestamp(3,  new Timestamp(new java.util.Date().getTime()));pst.setString(4,"connect");pst.setString(5,"information");pst.setTimestamp(6, new Timestamp(new java.util.Date().getTime()));pst.execute();JdbcUtils_DBCP.release(conn,pst,null);} catch (SQLException e) {e.printStackTrace();}}
}

DBCP 数据库连接池的实现相关推荐

  1. 使用 spring 集成 dbcp 数据库连接池到 Wowza 插件

    对于 Wowza 扩展插件,很可能需要连接数据库进行一些持久化查询操作,而且也很有可能把各种业务逻辑 bean 进行集中管理起来.本文结合集成 dbcp 数据库连接池到 Wowza 插件的案例,顺带介 ...

  2. springboot+dbcp数据库连接池

    springboot+dbcp数据库连接池 1,连接池配置文件 2,连接工具类 3,测试类测试连接 4,实际调用连接去同步数据 1,连接池配置文件 在resources目录下添加文件dbcp.prop ...

  3. C3P0 与 DBCP 数据库连接池使用和比较

    博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此   博主:威威喵  |  博客主页:https://blog.csdn.net/ ...

  4. DBCP数据库连接池技术

    1 mysql版本 2 导入jar包版本,采用配置文件连接时,dbcp.properties文件放到src目录下 3 代码 public class DBCPTeset {@Testpublic vo ...

  5. 03_dbcp数据源依赖jar包,DBCP中API介绍,不同过dbcp方式使用dbcp数据库连接池,通过配置文件使用dbcp数据库连接池

     DBCP数据源 使用DBCP数据源,需要导入两个jar包 Commons-dbcp.jar:连接池的实现 Common-pool.jar:连接池实现的依赖库. 导入mysql的jar包. DBC ...

  6. 在Spring 中配置DBCP数据库连接池

    EmployeeDao 代码 import java.util.List; import java.util.Map;import org.springframework.context.Applic ...

  7. Servlet+MySQL使用DBCP数据库连接池实现用户登录

    首先准备数据库数据和登录页面 创建user数据表并且插入几条数据 DROP TABLE IF EXISTS `user`; CREATE TABLE `user` (`id` int(11) NOT ...

  8. DBCP数据库连接池的使用

    2019独角兽企业重金招聘Python工程师标准>>> package tk.dong.connectionPool;import java.io.IOException; impo ...

  9. Java数据库连接池知识汇总(C3P0+DBCP+Druid)

    为什么要使用数据库连接池技术? 数据库连接池技术的优点 1. 资源重用 由于数据库连接得以重用,避免了频繁创建,释放连接引起的大量性能开销.在减少系统消耗的基础上,另一方面也增加了系统运行环境的平稳性 ...

最新文章

  1. 聊天机器人落地及进阶实战 | 公开课速记
  2. c语言求一个数组的众数,众数问题 (C语言代码)
  3. 写 Python 时的 5 个坏习惯
  4. matlab已知散点图求方程,已知空间离散点,想求出曲面方程,怎么办?
  5. MFC自定义消息的实现方法
  6. oc32--构造方法1
  7. python工作台_FreeCAD二次开发-创建Python工作台,添加菜单栏和工具条,FreeCAD命令
  8. 魔兽世界客户端数据研究(三)
  9. Windows远程连接的用户名和密码怎么设置?
  10. mac通过android打电话,应用短评:用Mac打电话的意义在哪?
  11. Kotlin入门(15)独门秘笈之特殊类
  12. 为什么南通的方言会有这么多?
  13. C++异常层次结构图
  14. html%3c转译,[转]URL编码
  15. 宏定义的黑魔法 - 宏菜鸟起飞手册
  16. 【libmodbus-vs2019】测试使用
  17. php 根据url获取域名,php 从url中获取域名的实例代码
  18. 成就你一生的100个哲理71-80
  19. Android 多进程编程 15问15答!
  20. 虚拟机服务器CPU授权,vSphere5全新的许可授权方式——CPU许可+vRAM授权

热门文章

  1. [UE4]epic/UE4关于win7报错缺失api-ms-win-downlevel-kernel32-l2-1-0
  2. python 任务队列 huey_python huey中文文档(二)
  3. excel筛选栏显示各项数量,excel筛选怎么看数量
  4. u盘装机大师win7怎么安装系统教程
  5. Eclipse通过SVN查看当前文件的提交记录
  6. wifi大师管理后台源码+微擎框架v2.7.8、2.5.7+wifi大师小程序
  7. 逃跑吧少年服务器维护时间,逃跑吧少年—《逃跑吧!少年》2月20日PC更新公告...
  8. [附源码]计算机毕业设计JAVA文章管理系统查重PPT
  9. 分享一款学生、工程师多功能计算器
  10. java模拟回合制游戏大小姐_java – 回合制游戏设计:事件驱动与游戏...