Mybatisplus常用注解

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方法已经生成好了
Mybatisplus常用注解_第1张图片
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的,有五个常用属性
Mybatisplus常用注解_第2张图片
(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);
}

(5)测试结果
在这里插入图片描述
END

你可能感兴趣的:(MybatisPlus)