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 = "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 = "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<Role> 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<User> {
List<User> 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 = "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 = "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<Role> roles;
}

最新文章

  1. html快速入门(基础教程+资源推荐)
  2. Android Token的使用学习
  3. [Java] 两种发起POST请求方法,并接收返回的响应内容的处理方式
  4. How to learn C++ and find all STL Algorithm reference
  5. Java基础知识强化100:JVM 内存模型
  6. php date(&#39;Y&#39;)
  7. rnqoj-28-合唱队形-最长上升子序列
  8. oracle维护表空间和数据文件
  9. fdisk添加磁盘
  10. iOS 任务的依赖操作
  11. Windows服务的安装卸载及错误查找
  12. HTML(四)HTML常用标签(a,img)
  13. Hadoop记录-Linux Service
  14. bzoj千题计划323:bzoj1951: [Sdoi2010]古代猪文(Lucas+CRT+欧拉定理)
  15. proxysql 系列 ~ 读写分离核心功能
  16. 《剑指offer》栈的插入弹出序列
  17. ADO.Net 数据库查询
  18. Spark入门——什么是Hadoop,为什么是Spark?
  19. python3+unittest+HTMLTestRunner
  20. 两个简单的动态规划问题,0-1背包和最大不相邻数累加和,附递归c代码

热门文章

  1. Qt:QJsonDocument以及与QJsonArray、QJsonObject、QJsonValue的关联
  2. 安卓应用修改(高德.度盘.QQ浏览器.bili)
  3. 矩池云上如何修改cuda版本
  4. 清华大学ucore操作系统课笔记
  5. Laravel-手机短信验证码-阿里云
  6. Java入土---Java基础(一)
  7. Spark ML源码分析之三 分类器
  8. vue2版本中slot的基本使用详解
  9. java 和groovy的混合使用
  10. JavaWeb——Tomcat使用