mybatis自动填充时间字段示例代码

yizhihongxing

为了实现 mybatis 自动填充时间字段的功能,需要在实体类中加入 createTime 和 updateTime 字段,并使用注解 @TableField(fill = FieldFill.INSERT) 标记 createTime 字段,在新增时自动填入当前时间,使用注解 @TableField(fill = FieldFill.INSERT_UPDATE) 标记 updateTime 字段,在更新时自动更新为当前时间,同时需要在 Mybatis 官网中查找对应版本的插件包并导入。

以下是一个示例:

@Data
public class User implements Serializable {
    private Long id;
    private String name;
    private Integer age;
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}

在 mapper.xml 中编写相应的 SQL 语句,如下:

<insert id="insert" parameterType="com.example.demo.entity.User">
    insert into user(name, age, create_time, update_time)
    values(
    #{name}, #{age}, #{createTime}, #{updateTime}
    )
</insert>

还可以使用 Mybatis Plus 提供的自动填充功能。使用该功能需要在实体类中实现接口 IFieldFill,使用 @TableField(fill = FieldFill.INSERT_UPDATE) 标记 updateTime 字段并在实现接口时进行填充实现,如下:

@Data
@TableName(value = "user")
public class User implements Serializable, IFieldFill {
    private Long id;
    private String name;
    private Integer age;
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    @Override
    public void insertFill(MetaObject metaObject) {
        LocalDateTime now = LocalDateTime.now();
        this.createTime = now;
        this.updateTime = now;
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.updateTime = LocalDateTime.now();
    }
}

在 mapper.xml 中不需要再编写相应的 SQL 语句,Mybatis Plus 会自动处理填充操作。

示例代码可以在 Mybatis官网 (https://mybatis.org/mybatis-3/)、Mybatis-Plus官网 (https://mp.baomidou.com/guide/) 上找到。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis自动填充时间字段示例代码 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 详解SpringBoot自定义配置与整合Druid

    详解SpringBoot自定义配置与整合Druid 本文将详细介绍如何在SpringBoot项目中自定义配置和整合Druid数据源。在本文中,我们将使用SpringBoot 2.x版本和Druid 1.1.10版本。 1. 自定义配置 在SpringBoot项目中,我们可以通过自定义配置文件来配置应用程序的各种属性。SpringBoot支持多种配置文件格式,…

    Java 2023年5月18日
    00
  • java web实现简单登录注册功能全过程(eclipse,mysql)

    接下来我详细讲解如何使用Java Web实现简单的登录注册功能全过程,以下是步骤: 步骤一:配置开发环境 在开始项目之前,我们需要搭建好相应的开发环境,主要包括Java SE、Eclipse IDE、MySQL等工具和环境的安装和配置工作。 步骤二:创建Maven Web项目 在Eclipse IDE中创建一个Maven Web项目,建议使用Spring框架…

    Java 2023年6月16日
    00
  • Maven插件的安装及使用

    当我们需要在项目中使用某个特定的功能,但是该功能并未包含在Maven的核心库中时,我们需要使用Maven插件。Maven插件的安装及使用非常简单,下面将提供完整攻略。 步骤一:pom.xml中引入插件 在pom.xml文件中引入需要的插件。例如,如果我们需要使用Maven的clean插件,则可以在pom.xml文件中添加如下代码: <build>…

    Java 2023年5月20日
    00
  • 在Spring Boot应用程序中使用Apache Kafka的方法步骤详解

    下面是在Spring Boot应用程序中使用Apache Kafka的方法步骤详解: 1. 引入Kafka相关依赖 在Spring Boot应用程序中使用Apache Kafka,我们首先需要在pom.xml文件中引入相应的依赖。这里我们使用Spring Boot提供的Kafka依赖,具体如下: <dependency> <groupId&…

    Java 2023年5月20日
    00
  • SpringBoot浅析安全管理之Shiro框架

    SpringBoot浅析安全管理之Shiro框架指南 简介 Shiro 是一个强大且易用的 Java 安全框架,提供身份验证、授权、加密和会话管理等功能,可以相对简单地集成到你的应用中,并提供了灵活的配置选项。在 Spring Boot 应用中使用 Shiro,可以提供全面的安全保护,并为开发人员提供便利的开发体验。 Shiro 核心概念 Shiro 包含以…

    Java 2023年5月20日
    00
  • java对double数组排序示例分享

    下面是“java对double数组排序示例分享”的完整攻略: 1. double数组排序的两种实现方式 在Java中对double数组进行排序通常会使用两种方式: 使用Arrays工具类的sort方法 使用DoubleStream的sorted方法 两种方式各有优缺点,下面将分别进行介绍: 1.1 利用Arrays.sort()方法 Arrays类是Java…

    Java 2023年5月26日
    00
  • Java日常练习题,每天进步一点点(49)

    首先,这是一篇关于Java练习题的攻略。根据题目名称“Java日常练习题, 每天进步一点点”,我们可以初步判断这篇攻略是针对Java初学者的日常练习计划。该练习计划涵盖了Java基础知识的各个方面,从变量类型到控制语句,再到面向对象编程和异常处理等。通过练习,初学者可以逐渐掌握Java的基本概念、语法和编程思想,不断提高自己的编程水平和解决问题的能力。 接下…

    Java 2023年5月23日
    00
  • java实现可视化界面肯德基(KFC)点餐系统代码实例

    Java实现可视化界面肯德基(KFC)点餐系统 1. 系统介绍 本系统是基于Java编程语言实现的可视化界面肯德基(KFC)点餐系统。该系统通过图形用户界面(GUI)实现了用户对菜品的选择,购物车的添加与删除等基本操作。本系统的目标是帮助用户更加方便、快捷地选择自己喜欢的肯德基(KFC)菜品,并实现订单的管理和处理。 2. 系统实现 2.1 系统功能 本系统…

    Java 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部