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方法已经生成好了
在这里插入图片描述
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);
}

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

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值