mybatis plus 配置自动设置创建时间和创建人id

1.新建 MyMetaObjectHandler

复制代码
package com.ruoyi.framework.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.ruoyi.common.bean.LocalUser;
import com.ruoyi.coupon.domain.CouponUser;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * 自动插入时间和操作人id
 */
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime",new Date(),metaObject);
        CouponUser user = LocalUser.getUser();
        if(user != null){
            this.setFieldValByName("createBy",String.valueOf(user.getId()),metaObject);
        }
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime",new Date(),metaObject);
        CouponUser user = LocalUser.getUser();
        if(user != null){
            this.setFieldValByName("updateBy",String.valueOf(user.getId()),metaObject);
        }
    }
}

2.待自动设置字段加注解

复制代码
public class BaseEntity implements Serializable
{

    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}

2.如果无效,则需要加入一下配置

复制代码
@Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception
    {
        String typeAliasesPackage = env.getProperty("mybatis-plus.typeAliasesPackage");
        String mapperLocations = env.getProperty("mybatis-plus.mapperLocations");
        String configLocation = env.getProperty("mybatis-plus.configLocation");
        typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage);
        VFS.addImplClass(SpringBootVFS.class);

        final MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean ();
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
        sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ",")));
        sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));

        //获取mybatis-plus全局配置
        GlobalConfig globalConfig = GlobalConfigUtils.defaults();
        //mybatis-plus全局配置设置元数据对象处理器为自己实现的那个
        globalConfig.setMetaObjectHandler(new MyMetaObjectHandler());
        sessionFactory.setGlobalConfig(globalConfig);
        
        return sessionFactory.getObject();
    }

至此完成

相关推荐
程序员侠客行8 小时前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
老毛肚12 小时前
手写mybatis
java·数据库·mybatis
爱学英语的程序员17 小时前
面试官:你了解过哪些数据库?
java·数据库·spring boot·sql·mysql·mybatis
阿杰真不会敲代码20 小时前
Mybatis-plus入门到精通
java·tomcat·mybatis
侠客行03171 天前
Mybatis连接池实现及池化模式
java·mybatis·源码阅读
老毛肚1 天前
MyBatis体系结构与工作原理 上篇
java·mybatis
独断万古他化2 天前
【SSM开发实战:博客系统】(三)核心业务功能开发与安全加密实现
spring boot·spring·mybatis·博客系统·加密
fengxin_rou2 天前
[Redis从零到精通|第四篇]:缓存穿透、雪崩、击穿
java·redis·缓存·mybatis·idea·多线程
老毛肚2 天前
MyBatis插件原理及Spring集成
java·spring·mybatis
马尔代夫哈哈哈2 天前
MyBatis 入门与实战:从配置到CRUD一站式指南
mybatis