MyBatisPlus-核心注解
MyBatisPlus-核心注解
@TableName
如果不使用@TableName注解,实体类的名字就是表名(忽略大小写)
当表名和实体类名不同时,使用@TableName注解,手动指定实体类对应的表名
@TableName("t_user")
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
mybatis-plus-global-config-db-config-table-prefix
通过SpringBoot配置文件为所有表添加前缀,这样就不用给每一个实体类配置@TableName注解了
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 以控制台输出Sql语句
type-aliases-package: com.xiaobai.pojo # 给实体类起别名
global-config:
db-config:
table-prefix: t_ # 为所有表名前添加前缀
@TableId
当主键的列名和属性名不一致时,我们需要@TableId注解来配置映射
当需要主键策略为MySQL接管时,我们也需要@TableId注解来配置映射(默认是MyBatisPlus接管)
需要注意的是,如果使用雪花算法来生成主键时,主键类型必须为String或者Long类型!!!
- value属性:配置主键列名
- type属性:配置主键策略
- AUTO值:由数据库接管配置主键自增长
- ASSIGN_ID值:默认值,由MyBatisPlus接管主键的生成(雪花算法)
@Data
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
}
mybatis-plus-global-config-db-config-id-type
通过SpringBoot配置文件为所有主键配置主键策略为AUTO,由数据库接管生成主键
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 以控制台输出Sql语句
type-aliases-package: com.xiaobai.pojo # 给实体类起别名
global-config:
db-config:
table-prefix: t_ # 为所有表名前添加前缀
id-type: auto # 全局设置主键策略为AUTO
自增长主键
当数据表数据特别庞大的时候,需要水平分割数张表,这是如果使用主键自增模式可能会出现主键冲突
所以我们就需要UUID或者雪花算法来生成唯一主键,一般应用于大型分布式项目中
@TableFieId
当非主键的列名和属性名不一致时,我们需要@TableFieId注解来配置映射
想要让MyBatisPlus忽略这个这个属性映射时,我们也要用@TableFieId注解来配置映射
- value属性:配置列名
- exist属性:默认为true,则确认该属性是数据库存在的列,配置为false则忽略此属性
@Data
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
}