springboot集成Mybatis-plus-join-boot-start详解
目录
- 导入mybit-plus依赖 与 myBATis-plus-join的依赖
- 准备如下表模板
- 在mapper中继承 MPJBaseMapper
- 实现类中继承 MPJBaseServiceImpl,并实现service
- service继承MPJBaseService
- controller
- 总结
导入mybit-plus依赖 与 mybatis-plus-join的依赖
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.5</version> </dependency> <dependency> <groupId>com.github.yulichang</groupId> <artifactId>mybatis-plus-join-boot-starter</artifactId> <version>1.4.13</version> </dependency>
准备如下表模板
CREATE TABLE `sys_user` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `dept_id` bigint DEFAULT NULL COMMENT '部门id', `user_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '账号', `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_genephpral_ci NOT NULL DEFAULT '' COMMENT '密码', `nick_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '昵称', `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户邮箱', `phone_number` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '手机号码', `sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '用户性别(0男 1女)', `avatar` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '头像地址', `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除标志', `version` int DEFAULT NULL COMMENT '乐观锁', `create_by` bigint DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='用户信息'; CREATE TABLE `sys_dept` ( http://www.devze.com `id` bigint NOT NULL AUTO_INCREMENT COMMENT '部门id', `parent_id` bigint DEFAULT '0' COMMENT '父部门id', `dept_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '部门名称', `order_num` int DEFAULT '0' COMMENT '显示顺序', `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '部门状态(0正常 1停用)', `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除标志', `create_by` bigint DEFAULT NULL COMMENT '创建人', TPhIS `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='部门信息';
在mapper中继承android MPJBaseMapper
再写一个mapper继承MPJBaseMapper
public interface SysUserMapper extends MPJBaseMapper<SysUser> { } public interface SysDeptMapper extends MPJBaseMapper<SysDept> { }
实现类中继承 MPJBaseServiceImpl,并实现service
@Service public class SysUserServiceImpl extends MPJBaseServiceImpl<SysUserMapper, SysUser> implements SysUserService { @Autowired private SysUserMapper sysUserMapper; /** * 测试:列表多表联查 * * @return */ @Override public List<SysUser> sysUserList() { //构建查询条件 MPJLambdaWrapper<SysUser> queryWrapper = new MPJLambdaWrapper<>(); //联查 queryWrapper.selectAll(SysUser.class) .select(SysDept::getDeptName) .leftJoin(SysDept.class, SysDept::getId, SysUser::getDeptId); //返 return list(queryWrapper); } /** * 删除 * * @param id * @return */ @Override public Boolean deleteById(Long id) { //创建一个删除条件 DeleteJoinWrapper<SysUser> eq = JoinWrappers.delete(SysUser.class) //与dept相连 .leftJoin(SysDept.class, SysDept::getId, SysUser::getDeptId) //根据id删除 .eq(SysUser::getId, id); return deleteJoin(eq); } }
service继承MPJBaseService
public interface SysUserService extends MPJBaseService<SysUser> { /** * 列表 :多表 * * @return */ List<SysUser> sysUserList(); /** * 删除 * * @param id * @return */ Boolean deleteById(Long id); }
controller
@RestController @RequestMapping("/sysUser") public class SysUserController { @Autowired private SysUserService sysUserService; /** * 列表 :多表 * * @return */ @GetMapping("/sysUserList") public List<SysUser> sysUserList() { return sysUserService.http://www.devze.comsysUserList(); } /** * 删除 * * @param id * @return */ @DeleteMapping("/deleteById/{id}") public Boolean deleteById(@PathVariable("id") Long id) { return sysUserService.deleteById(id); } }
最后自行测试即可~
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论