MyBatis-Plus 框架中的自定义元对象处理器

目录

一、代码展示

java 复制代码
package com.minster.yanapi.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 MyMetaObjectHandler implements MetaObjectHandler {//实现MetaObjectHandler
    //配置自动填充 拦截器
    //insert操作时填充方法
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime", new Date(), metaObject);   //创建时间
        this.setFieldValByName("updateTime", new Date(), metaObject);   //创建时间
        this.setFieldValByName("avatar","https://pic4.zhimg.com/v2-53a632ca6e89dcdc31b31b3d193fe55b_r.jpg",metaObject);
//        this.setFieldValByName("status",3,metaObject);
    }
    //update操作时填充方法
    @Override
    public void updateFill(MetaObject metaObject) { //填充 更新时间
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }
}

二、代码解读

这段代码是一个 MyBatis-Plus 框架中的自定义元对象处理器(MetaObjectHandler)。主要用于在执行数据库操作时,自动填充一些字段的值,例如创建时间和更新时间。

  1. 包结构和导入:

    • com.minster.yanapi.handler 是代码所在的包路径。
    • com.baomidou.mybatisplus.core.handlers.MetaObjectHandler 是 MyBatis-Plus 框架提供的元对象处理器接口。
    • org.apache.ibatis.reflection.MetaObject 是 MyBatis 框架提供的反射工具类。
    • org.springframework.stereotype.Component 是 Spring 框架的注解,用于声明该类是一个 Spring 组件。
  2. 类声明:

    • MyMetaObjectHandler 类实现了 MetaObjectHandler 接口。
    • 使用了 @Component 注解,将该类标记为一个 Spring 组件,使其能够被 Spring 容器扫描并进行管理。
  3. 自动填充方法:

    • insertFill 方法用于在执行插入操作时进行自动填充。通过调用 setFieldValByName 方法设置字段的值。
      • createTime 字段被填充为当前的日期时间。
      • updateTime 字段同样被填充为当前的日期时间。
      • avatar 字段被填充为固定的图片链接。
      • 注释中提到的 status 字段被注释掉,没有进行填充。
    • updateFill 方法用于在执行更新操作时进行自动填充。只填充了 updateTime 字段,将其设置为当前的日期时间。
  4. 总结:

    • 该类主要通过实现 MyBatis-Plus 的 MetaObjectHandler 接口,实现了插入和更新时的自动填充功能,为指定的字段赋予特定的值,简化了数据库操作中的字段填充过程。
    • 在 Spring 中通过 @Component 注解,将其纳入 Spring 容器进行管理。
相关推荐
没有bug.的程序员4 小时前
JAVA面试宝典 - 《MyBatis 进阶:插件开发与二级缓存》
java·面试·mybatis
码不停蹄的玄黓11 小时前
深入理解MyBatis延迟加载:原理、配置与实战优化
java·mybatis·延迟加载
hello早上好15 小时前
JPA、缓存、数据源与连接池、简介
java·mybatis
梁辰兴15 小时前
企业培训笔记:宠物信息管理--实现宠物信息分页查询
笔记·elementui·mybatis·vue3·springboot·宠物
鲁子狄17 小时前
[笔记] 动态 SQL 查询技术解析:构建灵活高效的企业级数据访问层
java·spring boot·笔记·sql·mysql·mybatis
拼搏@1 天前
第十六天,7月10日,八股
java·mybatis
军军君011 天前
基于Springboot+UniApp+Ai实现模拟面试小工具四:后端项目基础框架搭建下
spring boot·spring·面试·elementui·typescript·uni-app·mybatis
超级小忍1 天前
在 Spring Boot 中使用 MyBatis 的 XML 文件编写 SQL 语句详解
xml·spring boot·mybatis
程序猿小D1 天前
[附源码+数据库+毕业论文+答辩PPT+部署教程+配套软件]基于SpringBoot+MyBatis+MySQL+Maven+Vue实现的交流互动管理系统
spring boot·mysql·vue·mybatis·毕业论文·答辩ppt·交流互动
24kHT2 天前
xml映射文件的方式操作mybatis
xml·mybatis