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

文章目录

  • 😎一、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 {@Testpublic 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.hqwc.cn/news/288232.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DDR模块电路的PCB设计建议

DDR电路简介 RK3588 DDR 控制器接口支持 JEDEC SDRAM 标准接口,原理电路16位数据信号如图8-1所示,地址、控制信号如图8-2所示,电源信号如图8-3所示。电路控制器有如下特点: 1、兼容 LPDDR4/LPDDR4X/LPDDR5 标准; 2、…

【Matlab算法】随机梯度下降法 (Stochastic Gradient Descent,SGD) (附MATLAB完整代码)

随机梯度下降法 前言正文代码实现可运行代码结果 前言 随机梯度下降法 (Stochastic Gradient Descent,SGD) 是一种梯度下降法的变种,用于优化损失函数并更新模型参数。与传统的梯度下降法不同,SGD每次只使用一个样本来计算梯度和更新参数&am…

在极狐GitLab 上使用 DVC 实现简单机器学习

前言 之前我们已经讨论过机器学习领域的相关概念和细节(参考公众号文章 MLOps在极狐GitLab 的现状和前瞻),我们知道构建一个机器学习驱动的应用程序面临许多困难和挑战,比如:数据漂移、模型架构的变化或推理延迟等等。这些都是模…

企业u盘禁止访问如何解锁

如果您遇到了U盘禁止访问的问题,可能是由于系统设置、安全策略或第三方工具导致的。以下是一些可能的解锁方法,具体的操作可能因具体情况而异: 管理员权限: 确保您有足够的管理员权限来解锁U盘。有时,系统管理员或安全…

VMware Workstation Pro16安装centos7.8教程,centos7.8全程安装记录

1、创建虚拟机 2、选择操作系统安装包,勾选稍后再安装系统或者立即安装 3、选择客户机操作系统,选择linux和系统版本centos7 64位 4、命名虚拟机和选择安装位置,这里不建议安装在默认的系统盘c盘 5、点击下一步,指定磁盘大小&…

高性能3D Web轻量引擎HOOPS SDK助力制造业信息共享与协同!

工程软件开发工具包的提供者Tech Soft 3D宣布,Eurostep已将HOOPS Communicator和HOOPS Exchange集成到其旗舰制造协作产品ShareAspace Design to Manufacturing中,旨在为客户提供更多3D功能。 “我们与ShareAspace Design to Manufacturing的共同目标是…

变分自编码器【02/3】:训练过程

一、说明 欢迎来到我们的变分自编码器 (VAE) 系列三部分的第二部分。基于第 1 部分中介绍的介绍和实施细节,本部分将重点关注微调这些模型不可或缺的培训程序。我们将深入探讨每个参数的重要性以及它们对训练过程的贡献。要访问本系列的完整代码,请访问我…

Android的基础开发

基础开发 listView ListView就是列表条目&#xff0c;可以向下滚动&#xff0c;也可以点击。 首先设置两个视图布局 activity_main2.xml【充当容器{ListView}】 <ListViewandroid:layout_width"match_parent"android:layout_height"match_parent"a…

邮政快递单号查询入口,标记需要的单号记录

批量查询邮政快递单号的物流信息&#xff0c;对需要的单号记录进行标记。 所需工具&#xff1a; 一个【快递批量查询高手】软件 邮政快递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;并登录 步骤2&#xff1a;点击主界面左上角…

生信学院|12月22日《快速产品图像渲染》

课程主题&#xff1a;快速产品图像渲染 课程时间&#xff1a;2023年12月22日 14:00-14:30 主讲人&#xff1a;陈伟 生信科技 售后服务工程师 1、SOLIDWORKS Visualize介绍 2、操作演示 3、答疑 请安装腾讯会议客户端或APP&#xff0c;微信扫描海报中的二维码报名哦~~~ 或…

基于SSM的视康眼镜网店销售系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

PyQt6 QFontDialog字体对话框控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计50条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…