下面是 SpringBoot 整合 MyBatis/MyBatis-Plus 实现数据持久化的操作攻略:
环境准备
- SpringBoot 2.x
- MyBatis/MyBatis-Plus
- MySQL 数据库
- Maven
依赖配置
首先需要在 pom.xml 文件中配置 MyBatis/MyBatis-Plus 以及 MySQL 数据库依赖:
<dependencies>
<!-- SpringBoot 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MyBatis/MyBatis-Plus 依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!-- MySQL 数据库依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
数据库配置
在 application.yml 文件中配置 MySQL 数据库连接信息:
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: root123456
driver-class-name: com.mysql.cj.jdbc.Driver
MyBatis/MyBatis-Plus 配置
MyBatis 配置
创建 MyBatis 配置文件 mybatis-config.xml,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
</configuration>
MyBatis-Plus 配置
创建 MyBatis-Plus 配置文件 mybatis-plus-config.xml,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="logImpl" value="stdout_log4j2"/>
</settings>
</configuration>
实现 CRUD
创建实体类
创建实体类 User,表示用户信息,代码如下:
@Data
@EqualsAndHashCode(callSuper = false)
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private String email;
private Integer age;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}
其中,@Data 注解是 Lombok 提供的,可以自动生成 getter/setter、equals、hashCode 和 toString 方法。
@EqualsAndHashCode(callSuper = false) 注解是 Lombok 提供的,表示不生成 equals 和 hashCode 方法。
@TableId 注解是 MyBatis-Plus 提供的,用于声明 ID 字段,type 属性用于指定ID生成策略,这里使用的是自增长。
创建 Mapper 接口
创建 Mapper 接口 UserMapper,用于定义对 User 数据表的操作,代码如下:
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
其中,@Mapper 注解表示该接口是 Mapper 接口,需要被扫描到。
BaseMapper 是 MyBatis-Plus 提供的一个通用 Mapper,已经封装了常用的 DAO 操作方法,如插入、修改、删除和查询等。因此,只需要继承该接口即可。
编写 CRUD 方法
创建 UserService 类,用于实现对 User 数据库表的 CRUD,代码如下:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public void save(User user){
userMapper.insert(user);
}
public void update(User user){
userMapper.updateById(user);
}
public void deleteById(Long id){
userMapper.deleteById(id);
}
public User getById(Long id){
return userMapper.selectById(id);
}
public List<User> getAll(){
return userMapper.selectList(null);
}
}
其中,@Service 注解表示该类是 Service 类。
@Autowired 注解是 Spring 自带的,用于自动装配 UserMapper 接口实例对象。
save 方法用于保存用户信息。
update 方法用于更新用户信息。
deleteById 方法用于根据 ID 删除用户信息。
getById 方法用于根据 ID 查询用户信息。
getAll 方法用于查询所有用户信息。
示例
示例1:插入用户信息
创建 RESTful API 接口 UserApi,用于向数据库插入用户信息,代码如下:
@RestController
@RequestMapping("/user")
public class UserApi {
@Autowired
private UserService userService;
@PostMapping("")
public String save(User user){
userService.save(user);
return "success";
}
}
其中,@RestController 注解表示该类是一个 RESTful API 类。
@RequestMapping("/user") 表示该类处理的请求映射路径为 /user。
@Autowired 注解是 Spring 自带的,用于自动装配 UserService 实例对象。
@PostMapping("") 表示处理 POST 请求,"" 为空URL表示接收所有的url,即 /user
User 类通过 @RequestBody 注解绑定 HTTP 请求体到自定义类型 user 对象上。
使用 Postman 工具向 /user 接口发送 POST 请求,请求体为 JSON 字符串格式的用户信息。
返回 success 表示插入成功。
示例2:查询所有用户信息
继续创建 RESTful API 接口 UserApi,用于查询数据库中所有的用户信息,代码如下:
@RestController
@RequestMapping("/user")
public class UserApi {
@Autowired
private UserService userService;
@GetMapping("")
public List<User> getAll(){
return userService.getAll();
}
}
其中,@RestController、@RequestMapping("/user")、@Autowired 三个注解含义同示例1,不再赘述。
@GetMapping("") 表示处理 GET 请求,"" 为空 URL,表示查询所有用户信息。
使用 Postman 工具向 /user 接口发送 GET 请求,返回 JSON 格式的所有用户信息。
至此,我们就完成了 SpringBoot 整合 MyBatis/MyBatis-Plus 实现数据持久化的操作,其中包含了插入用户信息和查询所有用户信息两个示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合mybatis/mybatis-plus实现数据持久化的操作 - Python技术站