MyBatis-Plus速成指南:常用注解

@Table Name:

  1. 概述:
    1. MyBatis-Plus 在确定操作的表时,由 BaseMapper的泛型决定,即实体类决定,且默认操作的表名和实体类的类名一致
  2. 问题:
    1. 如果实体类类型的类名和要操作表的表名不一致会出现什么问题?(把 user 表改成 t_user)
      1. 答:程序抛出异常,Table 'mybatis_plus,.user' doesn't exist,因为现在的表名 t_user,而默认的表名和实体类型的类名一致,即 user表:
  3. 通过 @TableName 解决问题:
    1. 在实体类类型上添加 @TableName("t_user"),表示实体类对应的表,即可成功执行 SQL 语句
  4. 通过全局配置解决问题:
    1. 在开发过程中,我们经常遇到以上问题,即实体类所对应的表都有固定的前缀,例如 t_ 或 tbl_
    2. 此时,可以使用 MyBatis-Plus 提供的全局配置,为实体类所对应的表名设置默认的前缀,那么就不需要在每个实体类上通过 @TableName 标识实体类对应的表

@TableId:

  1. 概述:
    1. 经过以上的测试,MyBatis-Plus 在实现 CURD 时,会默认将 id 作为主键列,并在插入数据时,默认基于雪花算法的策略生成的 id
  2. 问题:
    1. 若实体类和表中标识主键的不是 id,而是其他字段,例如 uid,MyBatis-Plus 会自动识别 uid 作为主键列吗ÿ