当前位置:首页 > Java技术 > 【SpringBoot】整合JDBC、事务、连接池

【SpringBoot】整合JDBC、事务、连接池

2022年11月05日 19:23:23Java技术18

整合JDBC

jdbc是Spring极其重要的配置。而在SpringBoot中,只需要一个启动器即可:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

但是,数据库驱动的依赖是不能省的,因为SpringBoot压根不知道我们用的什么数据库。这里我们还是使用最熟悉的MySql:

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>

 
 

整合事务

我们应该如何配置事务呢?

答案是什么都不用做。刚刚的spring-boot-starter-jdbc启动器已经帮我们做好了一切。

我们应该如何使用事务呢?

这是个很傻的问题 。在对应的类或方法上写上我们熟知的@Transactional 注解 即可。

@Service
public class UserService {
     

    // 查询操作不需要进行事务控制
    public User queryById(Long id) {
     
        // ...
    }

    // 增删改操作需要进行事务控制
    @Transactional
    public void saveUser() {
     
        // ...
    }

}

 
 

整合连接池

这篇文章讲解了三种链接池的配置(1+2):《【SpringBoot】注解属性注入——图解三种配置方式

也许你已经觉得SpringBoot提供的配置方式已经无比简单,但是,还可以更简单。因为SpringBoot自带默认的 Hikari连接池

我们想要使用HikariCP,要做的只有一件事——在application.yaml中进行简单的参数配置:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/loliDB
    username: root
    password: 123456

 
 
 
 

补充:关于Hikari连接池

Hikari连接池 由日本开发者完成。提到Hikari,就不得不把它与国内阿里的 C3P0连接池 进行比较。事实上,二者也曾经有过论战。

Hikari与c3p0都是开源的。在效率性能上,Hikari秒杀c3p0,前者的速度可达后者的数百倍!那么,为什么Hikari这么快?

  1. 字节码更加精简,所以可以加载更多的代码到内存。
  2. 实现了一个无锁的集合类型,来减少并发造成的资源竞争。
  3. 使用了自定义的数组类型,相对于ArrayList极大提升了性能。
  4. 针对CPU的时间片算法进行优化,尽可能在一个时间片里完成各种操作。

其实Hikari与c3p0的侧重点是不同的,Hikari追求极致的速度,c3p0调和了速度与安全。其实不必纠结于如何选择两款产品,因为对于大多数的业务来说,性能的瓶颈也不在连接池。

(有参考:https://www.jianshu.com/p/0633b319503c)

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🍃 Spring

⭐️ Suki

作者:samarua
来源链接:https://blog.csdn.net/m0_46202073/article/details/115759860

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/68041.html

分享给朋友: