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