导入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); } }
最后自行测试即可~
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论