常用注解
1、指定表名,用于与数据库表一一对应,非驼峰命名对应的情况。
@TableName("tp_user")
class User {...}
2、指定主键,用于数据库不是以id为主键的表。
@TableId
Long user_id;
3、指定列名,用于数据库修改了列名,而不想修改定义的变量的情况。
@TableField("real_name")
String name;
通用Mapper
1.@TableName("TableName") 用来指定实体类对应得数据库表
2.@TableId 用来指明该字段为主键
3.@TableField("FieldName")用来指定字段名
mybatis plus注解
@TableId 设置主键
@TableName("mp_user") 匹配表名
@TableField("name") 匹配字段名
非数据库表中字段
@TableField(exist=false)
这里要留意的时MP的几条默认规则,这节中一开始并没有给出实体类和表中的对应关系,但是仍能对应上的原因是因为有以下默认规则。
表名和列名遵循实体类中为驼峰命名,数据库中为下划线连接
主键默认为id
指定字段名
指定表id
指定表名。。。。
mybatis-plus:主键采用雪花算法生成值的前提是实体类的主键属性名称必须为id。
mybatis-plus:数据表字段带有_的可以自动映射到驼峰式命名的属性上(t_user——》tUser)。
注解:
@TableName(“数据库表名”):使用场景实体类名称和数据表名不一致时,通过它指定表名,此时就可以使用mp的单表操作。
@TableId(“主键名”):使用场景实体类属性名称和数据表主键不是id时,通过它声明该属性为主键,就可以采用雪花算法生成主键值操作。
@TableField(“字段名”):使用场景实体类属性名称和数据表字段名不一致时,通过它指定数据表字段名称,就可以和实体类属性对应。
1、@TableName("表全名")
指定实体类对应的表名
2、@TableId
mp会按照雪花自增填充主键,默认实体类的主键为"id",当没有id时,它就不知道谁是主键,这时可以添加该注解
3、@TableField("字段名")
当实体类中的属性名和字段名对不上时,用该注解指定数据库中的字段名
默认情况下实体名和表名一致,如果不一致可以在实体类中使用注解指定表名
默认情况下主键使用id标识,如果不一致可以在实体类中使用注解指定
1.数据库名不同,在类上增加@TableName("mp_user") 2.主键ID的驼峰一般无法识别,在主键属性上增加@TableId 3.属性与字段名不相同,在属性上增加@TableField("name")
指定数据库表名注解:@TableName
MP默认主键名是id
指定表的主键注解:@TableId
实体属性名和表中字段名对应注解:@TableField("")
MP 实体类数据库字段对应规则
1、@TableId作用
MP默认找实体类属性名为id的字段作为主键,如果没找到会报错,此时在实体类对应主键字段上加@TableId注解就可以了
2、其他字段对应规则
MP默认实体类属性名(除主键外)与数据库字段名称对应规则为 :
realName -> real_name
3、@TableField("数据库列名")
private String name;
实体类属性名与数据库列名不一致时使用此注解
4、@TableField(exist=false)
private String remark;
此注解表明实体类中的某个属性不是数据库表中字段
其它字段指定数据库中对应名称
@TableField("name")//数据库中叫name
private String realName;
@TableId 注解到实体类的表id字段 可以取代表中id主键不叫id的别名的
对应驼峰写法 如 实体类 memberId, 表中 member_id
@TableName 在实体类执行表名 别名
Mybatis-Plus 三个常用注解:@TableName(); @TableId; @TableField();
当表名为 mp_user 时,在不改变 实体类的名字的情况下,通过添加 @TableName(“表名mp_user”)的方式来指定对应的数据库表名,以此解决在不编写sql语句的情况下,实体类的名字与数据库表名不一致而导致无法进行表操作的问题。
常用注解:
TableName
TableId
TableField("")
@TableName 表名映射
@TableId 主键映射
@TableField 字段映射