MyBatis-Plus快速入门

1. lombok

简介:lombok作用:提高开发效率,通过注解形式使javabean生成get、set、有参数、无参数、toString等方法,无需手动实现。

1
2
3
4
5
6
7
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>

用法:在实体类上面使用@Data注解即可

2. 连接数据库

添加依赖:

1
2
3
4
5
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
1
2
3
4
5
6
7
8
9
10
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456

# JPA settings
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true

3. SpringBoot工程

添加mybatisplus的依赖,讲springframework的版本改成2.5.6

1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>

3.1 代码部分

实体对象

1
2
3
4
5
6
7
8
@Data
@TableName("tb_user")
public class User {
private Long id;
private String username;
private String email;
private String age;
}

Mapper 接口

1
2
3
4
5
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

UserService服务类

1
2
3
4
5
6
7
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
}

UserServiceImpl实现类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@RestController
@RequestMapping("/user")
public class UserController {

@Resource
private UserService userService;

/**
* 获取全部用户
*
* @return List<User>
*/
@PostMapping("/list")
public List<User> getAllUsers() {
return userService.list();
}

/**
* 根据用户id查询用户
*
* @param id 用户id
* @return User
*/
@GetMapping("/get_by_id")
public User getUserById(@RequestParam("id") Long id) {
return userService.getById(id);
}

}

启动项目

4. 接口测试

尽量使用PostMan测试,使用国产ApiPost出现了无法查询中文编码的情况,使用PostMan就不会有这个情况。

image

5. 问题

5.1 Controller中无法使用getOne

解决:

UserService没有继承IService;

6. 插件

在idea中有一个叫MyBatisPlus的插件,可以根据数据库中的表一件生成上述的所有代码。image-20250521000939454

下载安装后上方会出现一个Other

image-20250521001102254

第一个选项是对数据库进行配置,配置后可以选择需要生成的表,第二个就是选择需要生成那些内容,可玩性还是很强的。