注意:本教程使用的数据库脚本、数据模型和环境信息请参考 “MyBatis Plus环境准备” 章节,点击下载示例源码。
前面章节已经对 MyBatis Plus 有一个简单的认识了,并且已经将 MyBatis Plus 学习环境搭建完成。
本章示例将基于“MyBatis Plus 项目初始化”章节创建的项目为基础进行开发,一个 MyBatis Plus 项目开发基本步骤如下:
(1)使用 Spring Boot 创建一个项目,已做过了
(2)创建一个包用来存放 mapper 文件
(3)在 Spring Boot 主类上面使用 @MapperScan 注解扫描我们自定义的 mapper
(4)自定义自己的 mapper,该 mapper 将继承 com.baomidou.mybatisplus.core.mapper.BaseMapper
(5)在我们的服务中使用 @Autowired 注解自动注入自定义的 mapper
(1)自定义 SimpleMapper 接口,该接口将继承 BaseMapper。代码如下:
package com.hxstrive.mybatis_plus.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hxstrive.mybatis_plus.model.UserBean; public interface SimpleMapper extends BaseMapper<UserBean> { }
你可以看到,上面代码中没有自定义任何自己的方法,所有方法均从 BaseMapper 父接口继承而来。
(2)在 MybatisPlusLearnApplication.java 类上使用 @MapperScan 注解配置扫描我们自定义的 mapper。代码如下:
package com.hxstrive.mybatis_plus; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.hxstrive.mybatis_plus.mapper") public class MybatisPlusLearnApplication { public static void main(String[] args) { SpringApplication.run(MybatisPlusLearnApplication.class, args); } }
上面代码中,使用 @MapperScan 注解扫描 com.hxstrive.mybatis_plus.mapper 包下面的所有 mapper。
(3)在 Spring Boot 中,我们可以使用单元测试来测试刚刚创建 mapper 功能,代码如下:
package com.hxstrive.mybatis_plus; import com.hxstrive.mybatis_plus.mapper.SimpleMapper; import com.hxstrive.mybatis_plus.model.UserBean; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.Date; @RunWith(SpringRunner.class) @SpringBootTest class SimpleTest { @Autowired private SimpleMapper simpleMapper; @Test void contextLoads() { System.out.println("插入用户:"); UserBean user = new UserBean(); user.setUserId(9999); user.setName("张三"); user.setAge(28); user.setSex("男"); if( simpleMapper.insert(user) > 0) { System.out.println("插入成功"); } System.out.println("\n\n查询用户:"); UserBean result = simpleMapper.selectById(user.getUserId()); System.out.println(result); System.out.println("\n\n修改用户:"); result.setName("李四"); result.setAge(32); result.setSex("女"); result.setBorthday(new Date()); if(simpleMapper.updateById(result) > 0) { System.out.println("修改成功"); System.out.println(simpleMapper.selectById(user.getUserId())); } System.out.println("\n\n删除用户:"); if(simpleMapper.deleteById(user.getUserId()) > 0) { System.out.println("删除成功"); } } }
上面代码中,使用 @Autowired 注解自动注入刚刚创建的 mapper,如下:
@Autowired private SimpleMapper simpleMapper;
然后,在 contextLoads() 单元测试方法中,测试 mapper 的 insert(插入)、selectById(根据ID查找)、updateById(根据ID更新)和 deleteById(根据ID删除)等简单的 CRUD 操作。
关于 MyBatis Plus 更复杂的用法,将在后续章节中娓娓道来,谢谢支持!!