springboot集成Mybatis-plus-join-boot-start详解
作者:guoyangsheng_
这篇文章主要介绍了springboot集成Mybatis-plus-join-boot-start方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
导入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_general_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` (
`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 '创建人',
`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中继承 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.sysUserList();
}
/**
* 删除
*
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
public Boolean deleteById(@PathVariable("id") Long id) {
return sysUserService.deleteById(id);
}
}最后自行测试即可~
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
