MyBatisPlus常用注解

  • @TableName
    描述:表名注解,标识实体类对应的表
    使用位置:实体类
    MyBatis-Plus在确定操作的表时,由BaseMapper的泛型决定,即实体类型决定,且默认操作的表名和实体类型的类名一致。
    此时可通过@TableName注解直接标识当前实体类对应的表。
    在实际项目中,由于表和实体类通常比较多,但表名一般都符合统一的命名规则,比如都有统一的前缀,此时我们可以通过全局配置来设定实体类和表之间的对应关系。如下:
yml 复制代码
mybatis-plus:
	global-config:
		db-config:
			# 配置MyBatis-Plus操作表的默认前缀
			table-prefix: t_
  • @TableId
    描述:主键注解
    使用位置:实体类主键字段
java 复制代码
@TableName("sys_user")
public class User {
    @TableId
    private Long id;
}

@TableId注解有两个属性:

value: 用来指定当前属性对应的数据库字段名

type: 默认为IdType.NONE,用来指定主键生成策略

常用策略主要有两种:

描述
IdType.ASSIGN_ID(默认) 基于雪花算法的策略生成数据id,与数据库id是否设置自增无关
IdType.AUTO 使用数据库的自增策略,注意,该类型请确保数据库设置了id自增,否则无效

全局配置主键生成策略:

yml 复制代码
# mybatis-plus配置
mybatis-plus:
  global-config:
    db-config:
      # 配置MybatisPlus的主键生成策略
      id-type: assign_id
  • @TableField

描述:字段注解(非主键)

常用于实体属性和表字段不一致的情况,此时有两种情况:

(1) 若实体类中的属性使用的是驼峰命名风格,而表中的字段使用的是下划线命名风格,例如实体类属性userName,表中字段user_name,此时MyBatis-Plus会自动将下划线命名风格转化为驼峰命名风格。

(2) 若实体类中的属性和表中的字段不满足情况1,例如实体类属性name,表中字段user_name,此时需要在实体类属性上使用@TableField("user_name")设置属性所对应的字段名。

java 复制代码
@Data
@TableName("user")
public class User {
	@TableId
    private Long id;
    @TableField("user_name")
    private String name;
    private Integer age;
    private String email;

}
  • @TableLogic
    描述:表字段逻辑处理注解(逻辑删除)
    此时需要在表中添加逻辑删除字段,如is_deleted
java 复制代码
@Data
@TableName("user")
public class User {

    @TableId
    private Long id;

    /**
     * 通过@TableField注解指定当前类的属性对应的数据库字段名
     */
    @TableField("user_name")
    private String name;
    private Integer age;
    private String email;

    /**
     * 通过@TableLogic注解指定当前字段为逻辑删除字段
     * 此时查询语句会自动加上is_deleted=0的条件,
     * 如SELECT id,user_name AS name,age,email,is_deleted FROM user WHERE is_deleted=0
     */
    @TableLogic
    private Integer isDeleted;

}
相关推荐
九皇叔叔12 天前
【06】SpringBoot3 MybatisPlus 修改(Mapper)
java·spring boot·mybatis·mybatisplus
九皇叔叔15 天前
【02】SpringBoot3 MybatisPlus 加入日志功能
java·mysql·mybatis·日志·mybatisplus
子非鱼92121 天前
MyBatisPlus快速上手
数据库·spring boot·mybatisplus
DCTANT1 个月前
【原创】使用更优雅的方式改造MyBatisPlus逻辑删除插件
spring boot·后端·mysql·kotlin·mybatis·mybatisplus
回忆是昨天里的海1 个月前
Spring boot接入视图时的问题
mysql·mybatisplus·视图
咘噜biu2 个月前
多租户动态数据源插件dynamic-datasource简介
java·mybatisplus·动态数据源·多租户
阿拉斯攀登2 个月前
MyBatis-Plus 全面介绍 & Spring Boot 集成实战
java·spring boot·mybatisplus·mp
LSL666_2 个月前
mybatisplus入门案例
数据库·mysql·mybatisplus
fanruitian2 个月前
springboot-mybatisplus-demo
spring boot·后端·mybatis·mybatisplus
草原印象2 个月前
Spring Boot Spring MVC MyBatis MyBatis Plus框架编写项目实战案例
spring boot·spring·mybatis·springmvc·mybatisplus