Teng's blog Teng's blog
首页
Java
H5前端
GitHub (opens new window)
首页
Java
H5前端
GitHub (opens new window)
  • 初步使用
  • 主键策略
  • 自动填充
    • 更新操作
    • 自动填充
      • 实体类上添加填充注解
      • 实现元数据处理类接口
  • 乐观锁
  • 基本查询
  • 删除操作
  • 使用 Wrapper 查询
  • Framework-MybatisPlus
Shetengteng
2021-11-24

自动填充

# 更新操作

  • 通过id进行更新操作
@Test
public void testUpdateUser(){
    User user = new User();
    user.setId(1463427155513171970L);
    user.setName("stt-new");
    int count = userMapper.updateById(user);
    System.out.println(count);
}
1
2
3
4
5
6
7
8

# 自动填充

  • 在某些情况下,更新字段希望系统自动添加或者填充

  • 如:create_time,update_time,所有的表都需要该字段的操作,可以给系统自动添加,同理创建者和更新者也可以自动填充

  • 首先更新数据库字段,增加create_time和update_time,都为datetime类型

alter table user
	add create_time datetime null;

alter table user
	add update_time datetime null;
1
2
3
4
5

# 实体类上添加填充注解

// 在插入记录的时候赋值
@TableField(fill= FieldFill.INSERT)
private Date createTime;

// 在插入记录和更新的时候赋值
@TableField(fill= FieldFill.INSERT_UPDATE)
private Date updateTime;
1
2
3
4
5
6
7

# 实现元数据处理类接口

package com.stt.demo.mybatisplus.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class AppMetaObjectHandler 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);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  • 使用创建和更新测试验证
Last Updated: 2022/01/16, 11:29:51
主键策略
乐观锁

← 主键策略 乐观锁→

Theme by Vdoing | Copyright © 2021-2022 Shetengteng | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式