Mybatis-Plus|Mybatis-Plus 如何实现一对多关系 举例 用户与角色
Mybatis-Plus 一对多Mybatis-Plus
不写一句sql语句实现一对多
首先来看效果
文章图片
Mysql数据库
用户表
角色表
用户与角色的中间表
中间表如下
文章图片
将三张表通过Mybatis Plus 的代码生成器生成到目录下
Pojo
在User的Pojo 添加List
package com.zcx.pojo;
import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;
/**
* @author zhaochangxin
* @date 2022/3/2 14:34
*/
// 生成getAndSet方法
@Data
// 有参
@AllArgsConstructor
// 无参
@NoArgsConstructor
@TableName("platform_usertest")
public class User implements Serializable {
// 默认自增字段
@TableId(type = IdType.ASSIGN_ID)
private Long id;
// 用户名
private String username;
// 密码
private String password;
// 状态
private int status;
// 创建者
@TableField("created_by")
private BigInteger createdBy;
// 创建时间
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
// 字段添加填充内容
@TableField(value = "https://www.it610.com/article/created_date", fill = FieldFill.INSERT)
private Date createdDate;
// 最后修改者
@TableField("last_modified_by")
private BigInteger lastModifiedBy;
// 最后修改时间
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
// 字段添加填充内容
@TableField(value = "https://www.it610.com/article/last_modified", fill = FieldFill.INSERT_UPDATE)
private Date lastModified;
// 所有者
private String owner;
// 乐观锁
@Version
private Integer version;
// 逻辑删除
@TableLogic
private Integer deleted;
// 权限
@TableField(exist = false)
private List roles;
}
IuserService
package com.zcx.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zcx.pojo.User;
import java.util.List;
/**
* @author zhaochangxin
* @Title: IUserService
* @Package com.zcx.service
* @Description: IUserService
* @date 2022/3/30 17:21
*/
public interface IUserService extends IService {
List queryAllUser();
}
在ServiceImpl 实现该接口方法
package com.zcx.pojo;
import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;
/**
* @author zhaochangxin
* @date 2022/3/2 14:34
*/
// 生成getAndSet方法
@Data
// 有参
@AllArgsConstructor
// 无参
@NoArgsConstructor
@TableName("platform_usertest")
public class User implements Serializable {
// 默认自增字段
@TableId(type = IdType.ASSIGN_ID)
private Long id;
// 用户名
private String username;
// 密码
private String password;
// 状态
private int status;
// 创建者
@TableField("created_by")
private BigInteger createdBy;
// 创建时间
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
// 字段添加填充内容
@TableField(value = "https://www.it610.com/article/created_date", fill = FieldFill.INSERT)
private Date createdDate;
// 最后修改者
@TableField("last_modified_by")
private BigInteger lastModifiedBy;
// 最后修改时间
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
// 字段添加填充内容
@TableField(value = "https://www.it610.com/article/last_modified", fill = FieldFill.INSERT_UPDATE)
private Date lastModified;
// 所有者
private String owner;
// 乐观锁
@Version
private Integer version;
// 逻辑删除
@TableLogic
private Integer deleted;
// 权限
@TableField(exist = false)
private List roles;
}
【Mybatis-Plus|Mybatis-Plus 如何实现一对多关系 举例 用户与角色】有问题或更好的办法请留言告知,谢谢您的观看。
推荐阅读
- 用一个文件,实现迷你|用一个文件,实现迷你 Web 框架
- 在 2040 年前,实现净零碳排放
- go|Go继承的方法重写,继承抽象类实现
- java|java-继承,super关键字,this关键字,抽象方法和抽象类,红包案例分析实现
- pytorch|pytorch实现手写数字识别 | MNIST数据集(全连接神经网络)
- 如何写文献综述
- intellij-idea|Spring Boot+Mybatis-Plus校园二手交易平台
- Mybatis|Mybatis-Plus入门(Mapper CRUD接口)
- mybatis|Mybatis-plus的Mapper CRUD 接口查询数据错误
- java|Mybatis-Plus通用Mapper CRUD之select