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. 年薪25-50w| 虚拟现实创新中心三维重建算法高级研究员招聘
  2. 分布式WebSocket架构
  3. 百度地图 osm地图 leaflet echarts webapck的组合使用时的踩坑记录
  4. 武汉python培训哪一家好一些-武汉Python培训机构哪家好?要怎么选才靠谱?
  5. C语言求:1到100之间的所有素数之和
  6. Linux之最常用的20条命令
  7. input驱动12种事件类型Event types的含义
  8. Hgame 2022 Answer‘s Windows
  9. SQL Server 2008将数据导出为脚本 [SQL Server]
  10. 【算法】输入一个链表,反转链表后,输出新链表的表头。
  11. 用python os.system 执行 批处理的时候, 出现的一些问题
  12. mysql workbench中文设置_使用Workbench完成流体压力渗透分析
  13. clone方法是如何工作的
  14. 软件测试面试-在工作中功能,接口,性能,自动化的占比是多少?
  15. Newtonsoft.Json的使用
  16. python 爬虫 美女_Python3爬取美女妹子图片
  17. Android对应颜色值代码
  18. html5游戏视频UI框架,几款流行的HTML5 UI 框架比较
  19. Tracup|使用项目管理软件帮助战胜拖延症
  20. LoadLibraryA加载dll失败

热门文章

  1. v-model和input结合使用
  2. 《Android 网络开发与应用实战详解》——2.1节简析Android安装文件
  3. HarmonyOS应用开发JAVA
  4. 2017 青岛 E Floppy Cube
  5. 十进制到M进制-C语言
  6. python怎么画地球绕太阳转_如何利用Python动态模拟太阳系运转
  7. 简师网:教师编只能在所考地有用吗?
  8. 调制自动识别c语言实现,一种基于PC机的肺癌细胞自动识别分类系统
  9. 华为公司新员工转正笔试题(附答案)
  10. 如何让软件支持扩展功能