java之HikariCP连接池介绍和使用方法 简单易懂!!!

news2024/11/26 10:30:51

文章目录

  • 😎一、HikariCP连接池介绍
  • 😎二、导入的jar包
  • 😎三、代码演示
    • 🧨Properties配置文件
    • 🧨使用配置文件连接
    • 🧨运行结果
  • 😎四、总结


✨前言:本章主要学习hikaricp连接池的介绍以及使用

😎一、HikariCP连接池介绍

在我们的工作中,免不了要和数据库打交道,而要想和数据库打好交道,选择一款合适的数据库连接池就至关重要,我们基本使用的数据库连接池有 c3p0、DBCP、BoneCP、Druid 等,而我们这次要介绍的主角是 HiKariCP,HiKariCP 号称业界跑得最快的数据库连接池,近几年发展的风生水起,更是被 Spring Boot 2.0 选中作为其默认数据库连接池。

HiKariCP 全称 HiKari Connection Pool,HiKari 源自日语 - 光

😎二、导入的jar包

一些为直接下载,一些去官网下载
https://mvnrepository.com/artifact/com.zaxxer/HikariCP/4.0.3
https://mvnrepository.com/artifact/org.slf4j/slf4j-api/1.7.25
https://repo1.maven.org/maven2/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar

😎三、代码演示

🧨Properties配置文件

代码如下:

# 连接URL
jdbcUrl=jdbc:mysql://localhost:3306/mydatabase

# 用户名
username=myusername

# 密码
password=mypassword

# 连接池名称
poolName=MyConnectionPool

# 连接池大小
maximumPoolSize=10

# 最小连接数
minimumIdle=5

# 连接超时时间(毫秒)
connectionTimeout=30000

# 空闲连接超时时间(毫秒)
idleTimeout=600000

# 最大生存时间(毫秒)
maxLifetime=1800000

🧨使用配置文件连接

代码如下:

package HikariCP;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.junit.Test;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

public class demo1 {
    @Test
    public void testHikari() throws IOException, SQLException {
        //1.配置连接池

		//也可以通过properties配置文件配置连接池new HikariConfig(Properties  properties)
        Properties properties = new Properties();
        FileInputStream fileInputStream = new FileInputStream("src\\HikariCP.properties");
        properties.load(fileInputStream);
        HikariConfig hikariConfig = new HikariConfig(properties);

        //2.通过配置类生成HikariCP连接池对象
        HikariDataSource dataSource = new HikariDataSource(hikariConfig);
        System.out.println(dataSource.getConnection());

    }
}

🧨运行结果

在这里插入图片描述

😎四、总结

HikariCP连接池是高性能的JDBC连接池,官网标注的三大特点:快速、简单、可靠,性能优于其他连接池。
官网详细地说明了HikariCP所做的一些优化,总结如下:

字节码精简:优化代码,直到编译后的字节码最少(展平继承层次结构,掩饰成员变量,消除强制类型转换),这样,CPU缓存可以加载更多的程序代码;

优化代理和拦截器:减少代码,例如HikariCP的Statement proxy只有100行代码,只有BoneCP的十分之一;

自定义数组类型(FastStatementList)代替ArrayList:避免每次get()调用都要进行range

check,避免调用remove()时的从头到尾的扫描; 自定义无锁集合类型(ConcurrentBag):提高并发读写的效率;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1325284.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

21 3GPP中 5G NR高速列车通信标准化

文章目录 信道模型实验——物理层设计相关元素μ(与子载波间隔有关)设计参考信号(DMRS) 本文提出初始接入、移动性管理、线性小区设计等高层技术。描述3GPP采用HST场景的评估参数,阐释了HST应用的物理层技术,包括数字通信和参考信号设计,链路…

@德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?

德人合科技 | 天锐绿盾加密软件是一款全面保障企业电脑数据和安全使用的加密软件 PC端访问地址:www.drhchina.com 它的功能包括但不限于: 实时操作日志:可以实时详细地记录所有终端的操作日志,包括终端上窗口标题的变换、程序的…

FFmepeg——视频处理工具安装以及简单命令学习。

FFmpeg 是一个免费、开源且高度可定制的多媒体处理工具,它是一个强大的跨平台框架,用于处理音频、视频、多媒体流和图像。FFmpeg 的主要功能包括解码、编码、转码、流处理、多路复用、分离、合并、过滤等,支持多种音视频格式,包括…

Flink(十)【处理函数】

前言 冬天学习成本太高了,每天冻得要死,自习室人满为患,确实是辛苦。学校基本的硬件条件差的一批(图书馆贼小贼偏僻、老教室暖气还没有地板热、空教室还得自己一个一个挨着找),个体无法改变环境只能顺应了&…

探索 Vuex 的世界:状态管理的新视角(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

XM平台官网开户注册流程图解

注册前准备 在进行XM外汇官网注册之前,首先需要准备必要的信息,包括个人身份信息、联系方式以及相关财务信息。确保这些信息的准确性是保证注册流程顺利进行的关键。 一、要访问XM外汇官方网站,首先打开您的浏览器。在浏览器的地址栏中输入…

智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.非洲秃鹫算法4.实验参数设定5.算法结果6.…

环境搭建及源码运行_java环境搭建_idea版本下载及安装

1、介绍 Idea是一款被广泛使用的Java集成开发环境,它提供了丰富的功能和工具来帮助开发人员更高效地编写和调试代码。作为一款开源软件,Idea不仅提供了基本的代码编辑、自动完成和调试功能,还支持大量的插件和扩展,可为开发人员提…

MySQL的增删改查(进阶)--下

3. 新增 插入查询结果 在一张表中插入另一张表的查询结果 语法为: INSERT INTO table_name [(column [, column ...])] SELECT ...该语句是组合技:把插入语句和查询语句结合到一起了—以查询结果,来作为插入的值。即把表一查询出来的结果集合…

从西工大安全事件浅谈特权账号管理系统

去年9月,国家计算机病毒应急处理中心发布《西北工业大学遭美国NSA网络攻击事件调查报告(之一)》(以下简称“西工大事件报告”),以充分详实的证据揭示了美国NSA使用41种武器,先后使用了遍布17个国…

创建Maven Web工程

目录下也会有对应的生命周期。其中常用的是:clean、compile、package、install。 比如这里install ,如果其他项目需要将这里的模块作为依赖使用,那就可以 install 。安装到本地仓库的位置: Java的Web工程,所以我们要选…

【LeetCode】每日一题 2023_12_20 判别首字母缩略词(简单题)

文章目录 刷题前唠嗑题目:判别首字母缩略词题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode?启动!!! 困难题我唯唯诺诺,简单题我重拳出击 题目:判别首字母缩略词 题目链接:2828…

【无人机学习篇】构建mavros机载电脑连接,从机载电脑获取pixhawk数据

(本文基于的pixhawk版本:6X minibase V2.2 ,固件:apm) 整个的步骤(baseline): 具体的每一步都可以在网上查到教程,这里只是梳理出一个流程。并且ubantu与ros的版本也不是…

【HCIP学习记录】OSPF Hello报文及状态机

字段长度含义Version1字节版本,OSPF的版本号。对于OSPFv2来说,其值为2。Type1字节类型,OSPF报文的类型,有下面几种类型: 1:Hello报文;● 2:DD报文;● 3:LSR报…

红日靶场-1

实战 | 记一次基础的内网Vulnstack靶机渗透一https://mp.weixin.qq.com/s/A3MIuT7RXTIIPNLjF42OTg 前言 kali一个nat网卡,模拟外网攻击机 win7一个nat网卡,一个VMnet 1网卡(仅主机模式),模拟web服务器win2…

实战案例:缓存不一致问题的解决(redis+本地缓存caffine)

一.问题引入 目前在写项目的时候,在B端查看文章,A端修改文章。为了增加效率,以及防止堆内存溢出,在B端选择本地缓存文章的方案。但是目前出现了A端对文章修改之后,B端读的还是旧数据,出现了缓存不一致的问…

【MATLAB第83期】基于MATLAB的LSTM代理模型的SOBOL全局敏感性运用

【MATLAB第83期】基于MATLAB的LSTM代理模型的SOBOL全局敏感性运用 引言 在前面几期,介绍了敏感性分析法,本期来介绍lstm作为代理模型的sobol全局敏感性分析模型。 【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代…

【运维面试100问】(十一)淡淡I/O过程

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

GZ015 机器人系统集成应用技术样题10-学生赛

2023年全国职业院校技能大赛 高职组“机器人系统集成应用技术”赛项 竞赛任务书(学生赛) 样题10 选手须知: 本任务书共 25页,如出现任务书缺页、字迹不清等问题,请及时向裁判示意,并进行任务书的更换。参赛…

安卓13上手势导航失效、手机卡死问题

问题描述&#xff1a;打开我们开发的app后&#xff0c;手势导航无法退回、无法回到桌面、无法切换应用。 使用设备&#xff1a;小米手机、MI14,、安卓13 未适配安卓13安卓x的情况下&#xff0c;检查自己的 AndroidManifest 文件&#xff0c;过滤器是否设置了 <category a…