当前位置: 代码网 > it编程>编程语言>Java > springboot集成Mybatis-plus-join-boot-start详解

springboot集成Mybatis-plus-join-boot-start详解

2025年04月17日 Java 我要评论
导入mybit-plus依赖 与 mybatis-plus-join的依赖<dependency> <groupid>com.baomidou</groupid&g

导入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);
    }
}

最后自行测试即可~

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com