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 '帐号状态(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);
    }
}

最后自行测试即可~

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot实现发送邮件功能

    SpringBoot实现发送邮件功能

    这篇文章主要介绍了SpringBoot 发送邮件功能实现,本文以163邮箱为例通过这个小案例给大家介绍,需要的朋友可以参考下
    2019-12-12
  • 2种Java删除ArrayList中的重复元素的方法

    2种Java删除ArrayList中的重复元素的方法

    这篇文章主要介绍了2种Java删除ArrayList中的重复元素的方法,感兴趣的朋友可以参考下
    2015-08-08
  • Java多线程之原子类解析

    Java多线程之原子类解析

    这篇文章主要介绍了Java多线程之原子类解析,Java原子类是一种多线程编程中常用的工具,用于实现线程安全的操作,它们提供了一种原子性操作的机制,确保多个线程同时访问共享变量时的数据一致性,需要的朋友可以参考下
    2023-10-10
  • JavaCV实现照片马赛克效果

    JavaCV实现照片马赛克效果

    这篇文章主要介绍了如何通过JavaCV实现照片马赛克效果,文中的示例代码讲解详细,对我们学习JavaCV有一定的帮助,感兴趣的小伙伴可以跟随小编一起动手试一试
    2022-01-01
  • 详解SpringCloudGateway内存泄漏问题

    详解SpringCloudGateway内存泄漏问题

    这篇文章主要介绍了详解SpringCloudGateway内存泄漏问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • SpringBoot使用读写锁解决缓存一致性的问题

    SpringBoot使用读写锁解决缓存一致性的问题

    本文主要介绍了SpringBoot使用读写锁解决缓存一致性的问题,通过在缓存类中维护一个读写锁,可以在读多写少的场景下提高并发访问效率,感兴趣的可以了解一下
    2025-03-03
  • jxl 导出数据到excel的实例讲解

    jxl 导出数据到excel的实例讲解

    下面小编就为大家分享一篇jxl 导出数据到excel的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • 带你重新认识Java动态代理

    带你重新认识Java动态代理

    这篇文章主要为大家介绍了Java的动态代理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • java启动参数之谜的排查过程

    java启动参数之谜的排查过程

    在日常操作中,相信很多人对Java启动参数存在疑惑,下面这篇文章主要给大家介绍了关于java启动参数之谜的排查过程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • SpringBoot中的@Inherited注解详解

    SpringBoot中的@Inherited注解详解

    这篇文章主要介绍了SpringBoot中的@Inherited注解详解,@Inherited是一个标识,用来修饰注解,如果一个类用上了@Inherited修饰的注解,那么其子类也会继承这个注解,需要的朋友可以参考下
    2023-08-08

最新评论