springboot集成Mybatis-plus-join-boot-start詳解
更新時間:2025年04月17日 09:53:35 作者: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 '帳號狀態(tài)(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 '創(chuàng)建人', `create_time` datetime DEFAULT NULL COMMENT '創(chuàng)建時間', `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 '部門狀態(tài)(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 '創(chuàng)建人', `create_time` datetime DEFAULT NULL COMMENT '創(chuàng)建時間', `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> { }
實現(xiàn)類中繼承 MPJBaseServiceImpl,并實現(xiàn)service
@Service public class SysUserServiceImpl extends MPJBaseServiceImpl<SysUserMapper, SysUser> implements SysUserService { @Autowired private SysUserMapper sysUserMapper; /** * 測試:列表多表聯(lián)查 * * @return */ @Override public List<SysUser> sysUserList() { //構建查詢條件 MPJLambdaWrapper<SysUser> queryWrapper = new MPJLambdaWrapper<>(); //聯(lián)查 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) { //創(chuàng)建一個刪除條件 DeleteJoinWrapper<SysUser> eq = JoinWrappers.delete(SysUser.class) //與dept相連 .leftJoin(SysDept.class, SysDept::getId, SysUser::getDeptId) //根據(jù)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); } }
最后自行測試即可~
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。