1. 创建项目
- 使用 IntelliJ IDEA 创建基本 Spring Boot 项目。
- 创建项目时选择 JDK 17,因为 MyBatis-Plus 的 3.x 版本不支持 JDK 8。
- 创建的 Spring Boot 项目版本为 阿里云的 3.0.2 版本。
- 在创建项目时选择以下选项:
JDBC API
Spring Boot Web
MySQL Connect
Lombok
配置数据库连接信息
在 application.properties 中配置数据库连接信息:
1 2 3 4
| spring.datasource.url=jdbc:mysql://localhost:3306/testks?useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true spring.datasource.username=root spring.datasource.password=password
|
2. 引入依赖
在 pom.xml 文件内添加以下内容:
1 2 3 4 5 6 7 8 9 10
| <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.9</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.5.9</version> </dependency>
|
注意:依赖引入完成后,需记得重新加载依赖文件。
3. 编写实体类
在 cn.edu.tyut.domain 包下创建 User 实体类:
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
| package cn.edu.tyut.domain;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data;
@Data @TableName("user") public class User { @TableId(value = "id", type = IdType.AUTO) private Integer id; @TableField("username") private String username; @TableField("password") private String password; @TableField("email") private String email; @TableField("phone") private String phone; @TableField("auth") private Integer auth; @TableField("status") private Integer status; }
|
@TableName 注解用于指定数据库内表的名称。
@TableId 注解用于指定表的 Id 字段,type 属性设置为自增 Id。
@TableField 注解用于定义数据库中对应的列。表中的列名使用下划线,实体类中字段名称使用驼峰命名规则,框架会自动完成转换。
如果表列名与实体属性名称之间不能自动转换,使用@TableField("u_nick_name") 定义列名。
@TableField(exist = false) 此注解用于封装检索的结果,对应字段在表中并没有列,此时设置 exist 属性为 false。
4. 编写 Mapper 文件
在 mapper 包下新建 UserMapper 接口,继承 BaseMapper 类,接口内容如下:
1 2 3 4 5 6 7
| package cn.edu.tyut.mapper; import cn.edu.tyut.domain.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface UserMapper extends BaseMapper<User> { }
|
5. 编写 MyBatis-Plus 配置文件
在 config 包下新建 MybatisPlusConfig 文件,标注 Mapper 扫描位置:
1 2 3 4 5 6 7 8 9
| package cn.edu.tyut.config; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Configuration; @Configuration @MapperScan("cn.edu.tyut.mapper") public class MybatisPlusConfig { }
|
6. 编写 Controller 文件测试
在 controller 包下新建 UserController 类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| package cn.edu.tyut.controller; import cn.edu.tyut.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/test") public void test() { System.out.println(userMapper.selectById(1)); } }
|
7. 访问测试
访问 http://localhost:8080/test 查看控制台输出是否正常。
8. 问题总结
8.1 JDK 版本问题
在之前使用 阿里云的 2.x Spring Boot 版本 时,兼容 JDK 8。
但由于 MyBatis-Plus 的 3.x 版本 不支持 JDK 8,需要升级至 JDK 17。
解决办法是使用 3.x 的 Spring Boot 版本。
建议:在处理版本依赖时,确保各个组件的兼容性,以减少不必要的错误和问题。