• 在SpringBoot中怎么添加HikariConnectionPool?


    当我们创建一个SpringBoot项目时,如果需要与数据库进行连接,可以把连接放进连接池中,这样,从第二次开始,用这个连接,去连接数据库时,会非常省时省资源。

    而java中的DataSource是一个接口,人家只提供的是连接池要遵循的标准与规范。所以我们要选市面上第三方做的连接池,去实现这个接口。

    市面上第三方的连接池很多,性能方面的排行是:hikari>druid>tomcat-jdbc>dbcp>c3p0

    hikariConnectionPool是哪家公司设计的,我没查到,但这并不妨碍我悄悄用它。不管这些了。

    =======     分割线     =======

    所用软件:SpringToolsSuit4    ,  有机会再研究idea上怎么配置

    SpringBoot中配置HikariConnectionPool   大体上分为以下几步:

    1:添加Hikari依赖

    2:与数据库连接的配置

    3:获取数据源对象,基于此对象获取连接

    详细步骤:

    1,创建SpringBoot项目时,添加JDBC API。

    注意:在这里直接搜“Hikar”是搜不到它相关的依赖的,而通过添加JDBC API可以,添加上HikariCP的依赖。(同时也要添加上MySQL Driver依赖)。

          

    第1步--完成!

    2,编写 与数据库连接的配置文件,application.properties

    #spring datasource
    spring.datasource.url=jdbc:mysql://localhost:3306/dbgoods?serverTimezone=GMT%2B8&characterEncoding=utf8  #MySQL驱动8.0以后的版本 要求加上serverTimezone   #MySQL数据库默认的端口号是3306
    spring.datasource.username=root
    spring.datasource.password=root

    第二步--完成!

    3,获取数据源对象,基于此对象获取连接

    创建一个test类,名字叫:DataSourceTests

    @SpringBootTest
    public class DataSourceTests {
        
       @Autowired
       private DataSource dataSource;
    
      //通过这个对象dataSource,调用.getConnection()方法,获取与数据库的连接   @Test void testGetConnection() throws SQLException { System.out.println(dataSource.getConnection()); } }

    运行后,控制台中显示:

     说明,我们通过dataSource这个对象,获取到了与数据库的连接。

    这个连接是HikariProxyConnection@2049121789

    通过它 就可以去访问mysql数据库了。

    ==拓展:

    1.dataSource这个对象的类型其实是HikariDataSource。(通过反射技术:dataSource.getClass().getName()  可得到答案)

    因为DataSource是java提供的一个总的接口,它是java为各大厂商制定的标准与规范。

    而HikariDataSource就是一个第三方厂商根据   标准与规范   制作出来的 一个实现类。

    2.第一次连接数据库时,需要创建连接。那么是通过jdbc的哪个API去创建的呢?

    我们知道,第一次连接时,需要注册数据库驱动,而注册驱动,用的是驱动程序中的API---Driver。

    JAVA提供了一个总的Driver接口,它也是---标准与规范。

    而MySQL数据库就提供了一组API,或者说一个实现类  也叫 Driver 去实现 标准与规范。

    这样我们就可以通过MySQL提供的Driver ,得到连接。

  • 相关阅读:
    链表首尾节点的常规方案
    MYSQL 学习
    卡尔曼滤波
    降维技术
    Hurst指数python实现
    一维GMM的Python代码实现
    对数周期幂率模型(LPPL)
    paper 112:hellinger distance
    paper 111:图像分类物体目标检测 from RCNN to YOLO
    paper 110:凸优化和非凸优化
  • 原文地址:https://www.cnblogs.com/raphaelJava-4560/p/13226640.html
Copyright © 2020-2023  润新知