序言
1.内容介绍
本章介绍了代码生成器的作用、配置方式以及如何采用代码生成器自动生成MyBatisPlus模板代码进行了描述,重点引入了两个持久层的案例分别是单条信息添加以及批量信息添加,实现对于持久层操作有个深刻的理解。
2.理论目标
- 了解代码生成器的作用
- 掌握代码生成器的配置
- 掌握信息持久化操作步骤
3.实践目标
- 熟练进行多方式单条信息添加操作,满足项目单目记录持久化需求
- 熟练进行saveOrUpdate操作,达到灵活进行记录的添加、更新操作
- 熟练进行批量信息添加,满足项目中多记录的导入需求
4.实践案例
- MyBatisPlus模板代码自动生成实战
- 单条信息添加实战
- 批量信息添加实战
5.内容目录
- 1.代码生成器
- 2.单条信息添加实战
- 3.批量信息添加实战
第1节 代码生成器
1. 代码生成器介绍
- AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
2. 代码生成器配置
添加依赖pom.xml
<!-- 代码生成器依赖 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.2</version> </dependency>
<!-- 添加 模板引擎 依赖,MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,用户可以选择自己熟悉的模板引擎,如果都不满足您的要求,可以采用自定义模板引擎。--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.31</version> </dependency> <!-- 如果选择了非默认引擎,需要在 AutoGenerator 中 设置模板引擎。--> AutoGenerator generator = new AutoGenerator(); // set freemarker engine generator.setTemplateEngine(new FreemarkerTemplateEngine());
编写配置
//配置 GlobalConfig GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java"); globalConfig.setAuthor("jobob"); globalConfig.setOpen(false);
//配置 DataSourceConfig DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/userdb?useUnicode=true&useSSL=false&characterEncoding=utf8"); dataSourceConfig.setDriverName("com.mysql.jdbc.Driver"); dataSourceConfig.setUsername("root"); dataSourceConfig.setPassword("password");
自定义属性注入
autoGenerator .setCfg(injectionConfig);
3. 执行代码生成器
4. 代码模块详解
-
entity包:实体模型层
-
mapper包:持久化模型层
//自动生成类UserMapper.java public interface UserMapper extends BaseMapper<User> { }com.baomidou.mybatisplus.core.mapper.BaseMapper类:封装了系统持久化方法

-
service包:业务逻辑层,需要调用mapper持久层
- IUserService.java:业务接口
- UserServiceImpl.java:业务实现类
//UserMapper是调用的持久类 //User是操作的实体类 @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService { }
-
controller包:控制层
- UserController.java
@RestController @RequestMapping("/user") public class UserController { }
第2节 单条信息添加实战
1. Service CRUD 接口
- 通用 Service CRUD 封装IService (opens new window)接口,进一步封装 CRUD 采用
get 查询单行remove 删除list 查询集合page 分页前缀命名方式区分Mapper层避免混淆, - 泛型
T为任意实体对象 - 建议如果存在自定义通用 Service 方法的可能,请创建自己的
IBaseService继承Mybatis-Plus提供的基类 - 对象
Wrapper为 条件构造器
2. 添加配置
-
配置MapperScan注解
@MapperScan("cn.com.chinahitech.springboot_user.*.mapper") public class SpringbootUserApplication { ... } -
添加日志记录配置
- resources目录下添加logback.xml
-
application.xml添加配置
mybatis-plus: type-aliases-package: cn.com.chinahitech.mybatisplus_user.*.entity global-config: db-config: id-type: auto logic-delete-field: 1 logic-not-delete-value: 0 ......
3. 添加单用户记录
- save(参数)
- saveOrUpdate(参数)
public interface IUserService extends IService<User> { //添加单用户 void addUser(User user); }
@Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService { @Override public void addUser(User user) { save(user); } }
@RestController @RequestMapping("/user") public class UserController { @Autowired private IUserService userService; //save方式添加1条记录 @RequestMapping("/saveOne") public String testSaveOneRecord(){ User user = new User("Tony",23,"tony@123.com"); userService.addUser(user); return "添加1条记录成功!"; } }

4. 添加或更新1条记录
采用saveOrUpdate(参数)方法
//添加或更新用户 void addOrModifyUser(User user);
@Override public void addOrModifyUser(User user) { saveOrUpdate(user); }
//saveOrUpdate方式添加或更新1条记录 @RequestMapping("/saveOrUpdate") public String testSaveOrUpdateOneRecord(){ User user = new User(6,"李四",28,"lisi@123.com"); userService.addOrModifyUser(user); return "添加或更新1条记录成功!"; }

开始实验
第3节 批量信息添加实战
1. 添加多用户记录
//基于List对象方式添加多条记录 void addUserList(List<User> users); //基于batch size方式 void addUserList2(List<User> users,int batchSize);
@Override public void addUserList(List<User> users) { saveBatch(users); } @Override public void addUserList2(List<User> users, int batchSize) { saveBatch(users,batchSize); }
//添加多条记录 @RequestMapping("/saveUsers") public String testSaveUsers(){ List<User> userList = new ArrayList<User>(); userList.add(new User("王五",20,"wangwu@123.com")); userList.add(new User("赵四",30,"zhaosi@123.com")); userList.add(new User("田七",24,"tianqi@123.com")); userService.addUserList2(userList,2); //batchSize:2 return "添加多条记录!"; }

2. 添加或更新多条用户记录
- 本应用学生参考"添加或更新1条记录"
- 本应用作为扩展实战

本文详细介绍使用MyBatisPlus代码生成器自动生成实体、Mapper等代码,并通过具体案例演示单条信息及批量信息的添加操作,提升开发效率。
&spm=1001.2101.3001.5002&articleId=126447104&d=1&t=3&u=93bccf87b4e44b8a821aa100906cd0d2)
1352

被折叠的 条评论
为什么被折叠?



