Spring Boot 整合 MyBatis-Plus 教程
一、引言
MyBatis-Plus 是 MyBatis 的增强版,提供了 CRUD 接口、分页插件、性能分析插件等特性,简化了开发过程。本文将详细介绍如何在 Spring Boot 项目中集成 MyBatis-Plus。
二、环境准备
- JDK 8 或以上版本
- Maven 3.5 或以上版本
- IntelliJ IDEA 或其他开发工具
- MySQL 数据库
三、创建 Spring Boot 项目
使用 Spring Initializr 创建一个基本的 Spring Boot 项目,并选择如下依赖:
- Spring Web
- MyBatis-Plus
- MySQL Driver
示例:
可以通过访问 Spring Initializr 在线生成项目,也可以在 IDEA 中直接创建。
四、添加依赖
在 pom.xml
文件中添加 MyBatis-Plus 的相关依赖:
<dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- Spring Boot Starter Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis-Plus Starter --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version> </dependency> <!-- MySQL Connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- Spring Boot Starter Test --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
五、配置数据库连接
在 src/main/resources
目录下创建 application.yml
文件,配置数据库连接信息:
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: your_username password: your_password mybatis-plus: mapper-locations: classpath:/mapper/*.xml type-aliases-package: com.example.demo.entity
六、创建实体类
在 src/main/java/com/example/demo/entity
目录下创建实体类,例如 User.java
:
package com.example.demo.entity; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data @TableName("user") public class User { @TableId private Long id; private String name; private Integer age; private String email; }
七、创建 Mapper 接口
在 src/main/java/com/example/demo/mapper
目录下创建 Mapper 接口,例如 UserMapper.java
:
package com.example.demo.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.demo.entity.User; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserMapper extends BaseMapper<User> { }
八、创建 Service 层
在 src/main/java/com/example/demo/service
目录下创建服务接口和实现类:
服务接口 UserService.java
:
package com.example.demo.service; import com.baomidou.mybatisplus.extension.service.IService; import com.example.demo.entity.User; public interface UserService extends IService<User> { }
服务实现类 UserServiceImpl.java
:
package com.example.demo.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.demo.entity.User; import com.example.demo.mapper.UserMapper; import com.example.demo.service.UserService; import org.springframework.stereotype.Service; @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { }
九、创建 Controller 层
在 src/main/java/com/example/demo/controller
目录下创建控制器类 UserController.java
:
package com.example.demo.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.example.demo.entity.User; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/list") public List<User> list() { return userService.list(); } @PostMapping("/add") public boolean add(@RequestBody User user) { return userService.save(user); } @PutMapping("/update") public boolean update(@RequestBody User user) { return userService.updateById(user); } @DeleteMapping("/delete/{id}") public boolean delete(@PathVariable Long id) { return userService.removeById(id); } }
十、编写 Mapper XML 文件
在 src/main/resources/mapper
目录下创建 UserMapper.xml
文件:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.example.demo.entity.User"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> <result column="email" property="email"/> </resultMap> <sql id="Base_Column_List"> id, name, age, email </sql> <select id="selectAll" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> FROM user </select> </mapper>
十一、运行项目
确保数据库配置正确后,启动 Spring Boot 应用。访问 http://localhost:8080/user/list
应该能看到用户列表。
十二、总结
通过以上步骤,我们完成了 Spring Boot 项目与 MyBatis-Plus 的集成。MyBatis-Plus 简化了大量繁琐的 CRUD 操作,提高了开发效率。通过结合 Spring Boot 的强大功能,我们可以更快速地构建高效、稳定的企业级应用。
附:完整项目结构
src ├── main │ ├── java │ │ └── com │ │ └── example │ │ └── demo │ │ ├── controller │ │ │ └── UserController.java │ │ ├── entity │ │ │ └── User.java │ │ ├── mapper │ │ │ └── UserMapper.java │ │ ├── service │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ └── UserServiceImpl.java │ │ └── DemoApplication.java │ ├── resources │ │ ├── application.yml │ │ └── mapper │ │ └── UserMapper.xml │ └── test │ └── java │ └── com │ └── example │ └── demo │ └── DemoApplicationTests.java └── pom.xml
通过本文,您应该能够成功在 Spring Boot 项目中集成 MyBatis-Plus,并开始享受它所带来的开发便利。如果有任何问题,欢迎随时交流。