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

整合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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot整合MyBatis-Plus非常简单,可以按照以下步骤进行操作: 1. 添加MyBatis-Plus和相关依赖:在`pom.xml`文件添加以下依赖: ```xml <dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- MyBatis-Plus Starter --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本号</version> </dependency> <!-- MySQL Connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> ``` 自行替换`最新版本号`为MyBatis-Plus的最新版本号。 2. 配置数据源信息:在`application.properties`(或`application.yml`)文件配置数据库连接信息,例如: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 3. 创建实体类和Mapper接口:创建与数据库表对应的实体类,使用`@TableName`注解指定表名,然后创建对应的Mapper接口,继承自`BaseMapper`。 ```java @TableName("user") // 指定对应的表名 public class User { private Long id; private String name; // getter和setter方法省略... } public interface UserMapper extends BaseMapper<User> { } ``` 4. 编写业务逻辑:可以创建Service层来封装业务逻辑,使用`@Service`注解标记为Spring的Bean。 ```java @Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(Long id) { return userMapper.selectById(id); } // 其他业务方法... } ``` 5. 使用MyBatis-Plus提供的API:MyBatis-Plus提供了丰富的API,可以方便地操作数据库,例如查询、插入、更新和删除等操作。 ```java @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users/{id}") public User getUser(@Pa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值