一篇文章带你掌握MyBatis简化框架——MyBatisPlus(12)

  1. 列名与编码开发设计不同步
// 假设我们的数据库密码设计为pwd,但是我们的实体类密码属性设计为passwordpackage com.itheima.domain;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableName;import lombok.Data;//lombok@Data@TableName("tbl_user")public class User {    private Long id;    private String name;    // 采用@TableField注解,后面采用属性value=https://www.huyubaike.com/biancheng/数据库列名 @TableField(value = "pwd") private String password; private Integer age; private String tel;}
  1. 该列不应当被打印时
// 例如我们的pwd密码,在查询时不应当被查询,但是我们采用select * from tbl_user来查询,如何屏蔽package com.itheima.domain;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableName;import lombok.Data;//lombok@Data@TableName("tbl_user")public class User {    private Long id;    private String name;    // 采用@TableField注解,后面采用属性select设置为false,即为不可查询    @TableField(value = "pwd",select = false)    private String password;    private Integer age;    private String tel;}
  1. 当实体类中出现数据库中不存在的列时
// 例如我们设计了一个属性online判断是否在线,不用放于数据库中,我们该如何在select * 中去除该属性package com.itheima.domain;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableName;import lombok.Data;//lombok@Data@TableName("tbl_user")public class User {    private Long id;    private String name;    @TableField(value = "pwd",select = false)    private String password;    private Integer age;    private String tel;    // 采用@TableField注解,后面跟属性exist设置为false,则判断该属性不存在于数据库中    @TableField(exist = false)    private Integer online;}我们将上述内容分离出来主要解释两个注解:
  1. @TableName
  • 名称:@TableName
  • 类型:类注解
  • 位置:模型类定义上方
  • 作用:设置当前类对应的数据库表关系
  • 相关属性:value设置数据库表名称
  1. @TableField
  • 名称:@TableField
  • 类型:属性注解
  • 位置:模型类属性定义上方
  • 作用:设置当前属性众多关系
  • 相关属性:value设置数据库字段名称,exist设置属性在数据库字段中是否存在,select设置属性是否参与查询
DML编程控制这一章节我们来讲一些MyBatisPlus中经常用到的操作,下面我们一一介绍
ID生成策略控制我们在实际开发中会有需要ID生成需求,对于不同的情况需要采取不同的ID生成方法: