DBCP连接池简介

     DBCP(DataBase connection pool)数据库连接池是 apache 上的一个Java连接池项目。DBCP通过连接池预先同数据库建立一些连接放在内存中(即连接池中),应用程序需要建立数据库连接时直接到从接池中申请一个连接使用,用完后由连接池回收该连接,从而达到连接复用,减少资源消耗的目的。

MySQL 8.0

MySQL 8.0以后,对java连接MySQL的驱动进行了更新,使用mysql-connector-java-8.*方可进行数据库连接,在调用驱动包时也需要调用

com.mysql.cj.jdbc.Driver

创建基于MySQL8.0的DBCP连接池

创建DBCPUtils.java

创建数据库连接池需要导入 五个jar包,

* commons-collections
 * commons-dbcp2
 * commons-logging
 * commons-pool2
 * mysql-connector

下载:https://download.csdn.net/download/weixin_39858881/10895706

import org.apache.commons.dbcp2.BasicDataSourceFactory;
import javax.sql.DataSource;
import java.sql.*;
import java.util.Properties;/** DBCP连接池在构建时需要引入* commons-collections* commons-dbcp2* commons-logging* commons-pool2* mysql-connector* 共五个jar包,缺一不可*//*** 本模块构建了一个DBCP连接池* DBCP连接池配置位于config/dbcpconfig.properties中* 连接数据库qzqmall user:root password:admin useSSL:false charset:utf8*/
public class DBCPUtils {private static DataSource ds;//定义一个连接池对象static{try {Properties pro = new Properties();pro.load(DBCPUtils.class.getClassLoader().getResourceAsStream("dbcpconfig.properties"));ds = BasicDataSourceFactory.createDataSource(pro);//得到一个连接池对象} catch (Exception e) {throw new ExceptionInInitializerError("初始化连接错误,请检查配置文件!");}}/*** 构造从连接池取出连接的方法* @return Connection* @throws SQLException*/public static Connection getConnection() throws SQLException {return ds.getConnection();}/*** 关闭rs & stmt & conn* @param rs ResultSet* @param stmt Statement* @param conn Connection*/public static void closeAll(ResultSet rs, Statement stmt, Connection conn){if(rs!=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if(stmt!=null){try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}if(conn!=null){try {conn.close();//关闭} catch (SQLException e) {e.printStackTrace();}}}/*** 测试类* @param args*/public static void main(String[] args) {try {System.out.println("对DBCP池进行测试");Connection con = DBCPUtils.getConnection();Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM book");System.out.println(rs.next());closeAll(rs,stmt,con);} catch (SQLException e) {e.printStackTrace();}}

创建DBCP连接池配置文件

该文件用于配置数据库连接池的IP、端口、用户、密码以及连接数等配置信息。

在连接MySQL 8.0及更高版本时,不仅需要设置字符编码属性,还需要对时区进行设置serverTimezone=UTC;

此外,连接Mysql8.0及更高版本时,驱动名为com.mysql.cj.jdbc.Driver,在8.0之前的版本为com.mysql.jdbc.Driver

#连接设置
driverClassName=com.mysql.cj.jdbc.Driver
#设置数据库端口、数据库名
url=jdbc:mysql://localhost:3306/DB_Name
#设置数据库连接用户、密码
username=root
password=admin#<!-- 初始化连接 -->
initialSize=10#最大连接数量
maxActive=50#<!-- 最大空闲连接 -->
maxIdle=20#<!-- 最小空闲连接 -->
minIdle=5#<!-- 超时等待时间以毫秒为单位 60000毫秒/1000等于60秒 -->
maxWait=60000#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]
#注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=utf8;useSSL=false;serverTimezone=UTC;allowPublicKeyRetrieval=true#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true#driver default 指定由连接池所创建的连接的只读(read-only)状态。
#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)
#defaultReadOnly=#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=REPEATABLE_READ

至此,数据库连接池创建完成,使用数据库连接时可import DBCPUtils,并调用DBCPUtils中的getConnection()方法获取数据库连接,当数据库连接使用完毕后,可调用closeAll()方法,关闭Connection、Statement(or PreparedStatement)、ResultSet对象。

Mysql 8.0 创建DBCP连接池相关推荐

  1. mysql 8.0创建远程连接用户

    在虚拟机中,连接宿主机mysql数据库时,是无法直接连接,会出现如下错误. OperationalError: (1045, "Access denied for user 'root'@' ...

  2. dbcp连接池配置mysql_dbcp数据库连接池的配置和使用

    dbcp连接池是Apache旗下的软件,开源连接池,使用步骤如下: 1)导入dbcp的jar包 commons-dbcp-1.4.jar  核心包 commons-pool-1.5.6.jar 辅助包 ...

  3. java 连接池连接mysql数据库需要哪些jar包_DBCP-基于Java8导入DBCP连接池所需JAR包并编写DBCPUtils工具类...

    上述五个jar包缺一不可 下载解压后,进入解压出的文件夹 将这五个jar包复制出来放入自己创建的myJar文件夹中(myJar文件夹创建与说明) 接下来就可以在工程中进行使用package utils ...

  4. basicdatasourcefactory mysql_Java基础-DBCP连接池(BasicDataSource类)详解

    Java基础-DBCP连接池(BasicDataSource类)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际开发中"获得连接"或"释放资源 ...

  5. 数据库MySQL基础---事务相关特性--连接池DBCP--C3P0--JavaBean--DBUtils工具

    事务相关特性–连接池DBCP–C3P0–JavaBean–DBUtils工具 事务的概念 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项 ...

  6. 数据库连接池——DBCP连接池o

    DBCP 1.什么是DBCP? DBCP是Apache提供的一款开源免费的数据库连接池! Hibernate3.0之后不再对DBCP提供支持!因为Hibernate声明DBCP有致命的缺欠!DBCP因 ...

  7. DBCP连接池常用参数详解

    DBCP连接池配置详解 连接池空闲连接数:连接池中存放的没有被使用的连接,使用getNumIdle()方法获取 连接池活动连接数:已经被程序借出,正在使用的连接数,当调用conn.close()方法后 ...

  8. DBCP连接池原理分析

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

  9. DBCP连接池配置常用参数说明

    参数 默认值 说明 username \ 传递给JDBC驱动的用于建立连接的用户名 password \ 传递给JDBC驱动的用于建立连接的密码 url \ 传递给JDBC驱动的用于建立连接的URL ...

最新文章

  1. SQL 基础-- 子查询
  2. 数据库建表需要外键约束吗?
  3. sql安装目录下log文件夹_Linux安装Hive数据仓库工具
  4. IIS+ASP+MySQL8.0+数据库连接解决方案(2019.7)
  5. spring boot 中@Mapper和@Repository的区别
  6. android recycleview长按多选_UI设计中Android和IOS设计差异总结
  7. C语言解决迭代递推问题
  8. 珍大户《认知世界的经济学》学习笔记,更新时间 2021年01月30日22:34:35
  9. 还在用 ZXing ? 试试华为统一扫码服务吧!
  10. 使用unity完成简单的打地鼠游戏2D制作
  11. 第 4 代 4 端口 HDMI/DVI 分配器龙迅LT86104SXE
  12. 对输入的两个分数选择‘+’、‘-’、‘*’、‘/’四则运算,并以分数形式输出结果。输入:第一行先输入整数T,表示总共有T组数据。接下来共T行,每行输入分数形式的算术表达式。 输出:最简分数形
  13. 4 Kubernetes资源-Pod控制器(2)
  14. Xshell7工具下载安装以及简单使用
  15. 使用FormData格式上传图像并预览图片
  16. MySQL入门教程:基本概念
  17. java如何编写spi接口_软件模拟SPI接口程序代码(4种模式)
  18. 了解Cookie是什么
  19. 大学生实习报告心得三篇
  20. 温度 数值模拟 matlab,基于Matlab导热问题的数值模拟.pdf

热门文章

  1. 大禹电子多普勒流量计管道测量应用
  2. 数字化转型有必要吗?
  3. 菜鸟的学习之路----Springboot项目配置Swagger--maven方式
  4. HAL_Delay(N);
  5. 计算机管理员改时间,电脑系统时间修改的问题
  6. 大学生图书馆网页设计模板代码 DIV布局书店网页作业成品 学校书籍网页制作模板 学生简单书籍阅读网站设计成品
  7. 关于webstorm-----eslint一键自动修复所有错误
  8. 【硬核】MMU是如何完成地址翻译的
  9. 明光市机器人_“柠檬皮”软体机器人!26岁小伙联合发明光磁场机器人|专访...
  10. 红黑树:节点插入详解及其红黑树自我实现