之前快速搭建项目中,创建的类名与表名以及属性名都是一致的,所以mybatis plus可以根据类名以及属性名进行对应的操作,那么如果表名与属性名中不一致或属性名与列名不一致时我们应该怎么处理呢,这里mybatis plus为我们提供了很多注解可以解决这个问题。
Mybatis-Plus常用注解
一、@TableName注解
/*用来将实体对象与数据库表名完成映射
修饰范围:用在类上
常见属性:
value:String类型,指定映射的表名
resultMap:String类型,用来指定XML配置中resultMap的id值*/
package com.cheny.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* @Author 陈雲鑫
* @Date 2021/7/19 15:34
*/
@Data // lombok的注解用来生成get set 等相关方法
@ToString
@AllArgsConstructor // 生成有参构造方法
@NoArgsConstructor // 生成无参构造方法
@TableName(value = "user") // 默认将类名作为表名
public class User {
private int id;
private String name;
private Integer age;
}
二、@TableId注解
/*描述:主键注解
修饰范围:用在属性上
常见属性:
value:String类型,指定实体类中与表中对应的主键列名
type:枚举类型,指定主键生成类型*/
package com.cheny.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* @Author 陈雲鑫
* @Date 2021/7/19 15:34
*/
@Data // lombok的注解用来生成get set 等相关方法
@ToString
@AllArgsConstructor // 生成有参构造方法
@NoArgsConstructor // 生成无参构造方法
@TableName(value = "user")
public class User {
@TableId(value = "id",type = IdType.AUTO) // 指定主键名,设置主键类型为自增
private int id;
private String name;
private Integer age;
}
三、@TableId注解
/*描述:字段注解
修饰范围:用在属性上
常见属性:value:String类型,指定实体类中与表中对应的主键列名*/
package com.cheny.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* @Author 陈雲鑫
* @Date 2021/7/19 15:34
*/
@Data // lombok的注解用来生成get set 等相关方法
@ToString
@AllArgsConstructor // 生成有参构造方法
@NoArgsConstructor // 生成无参构造方法
@TableName(value = "user")
public class User {
@TableId(value = "id",type = IdType.AUTO) // 指定主键名,设置主键类型为自增
private int id;
@TableField(value = "name") // 指定属性对应列名
private String name;
private Integer age;
}