MyBatis-Plus 玩转 MySQL,玩转 Java 世界的数据持久化!
2022-12-03 16:59:25
MyBatis-Plus:将数据持久化提升到新的高度
简介
在 Java 开发中,数据持久化至关重要。MyBatis-Plus 作为一款出色的 ORM 框架,因其强大而便利的功能而备受推崇。本博客将深入探讨如何将 MyBatis-Plus 无缝集成到 SpringBoot 项目中,连接 MySQL 数据库,让你在 Java 应用程序中轻松管理数据。
搭建项目环境
首先,你需要设置一个 SpringBoot 项目环境。若尚未完成,请参考官方文档或其他教程创建项目。
添加依赖
在 pom.xml 文件中,引入以下依赖:
<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.5.2</version>
</dependency>
配置数据源
在 application.yml 文件中,配置数据源连接信息:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root
创建实体类
实体类是与数据库表一一对应的 Java 类,表示数据库中的数据。以 User 表为例,我们创建 User 实体类:
public class User {
private Integer id;
private String name;
private Integer age;
// 省略 getter 和 setter 方法
}
创建 Mapper 接口
Mapper 接口由 MyBatis-Plus 提供,用于定义数据库操作。以 User 表为例,我们创建 UserMapper 接口:
public interface UserMapper extends BaseMapper<User> {
}
创建 Service 接口
Service 接口是业务逻辑层的接口,定义业务逻辑。以 User 表为例,我们创建 UserService 接口:
public interface UserService {
List<User> list();
void save(User user);
void update(User user);
void delete(Integer id);
}
创建 Service 实现类
Service 实现类是业务逻辑层的实现类,实现业务逻辑。以 User 表为例,我们创建 UserServiceImpl 类:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> list() {
return userMapper.selectList(null);
}
@Override
public void save(User user) {
userMapper.insert(user);
}
@Override
public void update(User user) {
userMapper.updateById(user);
}
@Override
public void delete(Integer id) {
userMapper.deleteById(id);
}
}
创建 Controller
Controller 是控制层的组件,接收用户请求并调用 Service 层方法处理业务逻辑。以 User 表为例,我们创建 UserController 类:
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public List<User> list() {
return userService.list();
}
@PostMapping("/save")
public void save(@RequestBody User user) {
userService.save(user);
}
@PutMapping("/update")
public void update(@RequestBody User user) {
userService.update(user);
}
@DeleteMapping("/delete/{id}")
public void delete(@PathVariable Integer id) {
userService.delete(id);
}
}
测试
启动项目,在浏览器中访问以下 URL:
- http://localhost:8080/user/list
- http://localhost:8080/user/save
- http://localhost:8080/user/update
- http://localhost:8080/user/delete/{id}
若一切正常,你会看到相应的结果。
常见问题解答
1. 如何配置 MyBatis-Plus 分页插件?
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-pagehelper</artifactId>
<version>3.5.2</version>
</dependency>
2. 如何使用 MyBatis-Plus 的乐观锁?
使用 @Version 注解实体类的 version 属性。
3. 如何在 MyBatis-Plus 中使用逻辑删除?
配置全局逻辑删除字段,并在实体类中添加 @TableLogic 注解。
4. 如何在 MyBatis-Plus 中实现级联操作?
使用 @TableField(condition="...") 注解指定外键列。
5. 如何使用 MyBatis-Plus 的代码生成器?
使用 mybatis-plus-generator 项目,并在 application.yml 中配置相关属性。