1、@Data lombook注解(自动生成get set toString()方法)
@Data
@TableName(value = "user")
public class Account {
private Integer id;
@TableField(value = "name")
private String title;
private Integer age;
}
使用Data注解后,点击左侧的Struceure可以看到get、set和toString方法已经生成好了
2、@TableName(value=“user”)
映射数据库的表名,用于实体类和数据库表名称不一致的情况
@TableName(value = "user")
public class Account {
private Integer id;
private String title;
private Integer age;
}
3、@TableField(value=“name”)
映射数据库字段,用于实体类中的成员变量和数据库中的字段名称不一致的情况
public class Account {
private Integer id;
@TableField(value = "name")
private String title;
private Integer age;
}
4、TableID(value=“id”)
专用于映射数据库主键字段
public class Account {
@TableId(value = "id")
private Integer Uid;
@TableField(value = "name")
private String title;
private Integer age;
}
5、TableId(type="")
用于生成主键id的,有五个常用属性
(1)NONE,默认的,数据库主键id自增,使用雪花算法实现
实体类中的主键应设置为long类型,避免生成的主键id长度过长而溢出
(2)input,如果开发者手动赋值,则存入该值,如果开发者没有手动赋值,则数据库通过自增方式给主键赋值
(3)AUTO默认就是数据库自增,开发者无需赋值,如果开发者手动赋值,数据库也不会存入该值
(4)ASSIGN_ID,通过雪花算法自动生成id,生成主键非自增
(5)ASSIGN_UUID,主键类型必须为String类型,雪花算法自动生成
要求数据库字段类型,实体类型必须为String
6、@TableField(exist=false)
默认为true,是否为数据库字段,false,查询时忽略该字段
7、@TableField(slect=false)
默认为true,查询时是否查询该字段
8、@TableField(fill =)
fill表示是否自动填充,将对象存入数据库的时候,由mybatis plus 自动给某些字段赋值,create_time,update_time
(1)给表添加create_time字段,update_time字段
(2)实体类新增两个字段,创建时间和更新时间
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
(3)创建自动填充处理器
package com.example.mybatisplus.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* @author 袁浩东
* @description
* @date 2021/2/18 14:42
*/
@Component
public class MyMateObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}
(4)测试类进行测试
@Test
void save(){
User user=new User();
user.setAge(22);
user.setName("费德勒");
mapper.insert(user);
System.out.println(user);
}