当前位置: 首页 > wzjs >正文

常德网络建站2022年每日新闻摘抄10一30字

常德网络建站,2022年每日新闻摘抄10一30字,电商设计工资多少钱一个月,做推广网站费用MyBatis-Plus(MP) 提供了一个非常强大的功能——自动填充功能。该功能可以在执行插入或更新操作时,自动为某些字段赋值,免去手动设置这些字段的麻烦。常见的应用场景包括 创建时间 和 更新时间 字段的自动填充,帮助开发…

MyBatis-Plus(MP) 提供了一个非常强大的功能——自动填充功能。该功能可以在执行插入或更新操作时,自动为某些字段赋值,免去手动设置这些字段的麻烦。常见的应用场景包括 创建时间更新时间 字段的自动填充,帮助开发者在处理数据时更加高效,减少人为错误。

本文将介绍 MyBatis-Plus 自动填充功能 的概念、实现步骤、场景应用以及如何配置和自定义填充规则。


1. 自动填充的概念

自动填充功能指的是,当执行 插入(INSERT)更新(UPDATE) 操作时,某些字段可以由 MyBatis-Plus 自动赋值,无需开发者手动提供。这些字段通常是一些系统字段,比如:

  • 创建时间:记录实体对象的创建时间。
  • 更新时间:记录实体对象的最后修改时间。

自动填充通过 字段注解 配合 MetaObjectHandler 实现,可以自动为某些字段设置默认值,避免重复的代码逻辑。


2. 实现自动填充的步骤

要实现 MyBatis-Plus 的自动填充功能,通常需要以下几个步骤:

2.1 步骤 1:在实体类中标注自动填充字段

在实体类中,使用 MyBatis-Plus 提供的 @TableField 注解,指定需要自动填充的字段,并设置 fill 属性。

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;import java.time.LocalDateTime;public class User {@TableId(value = "id", type = IdType.AUTO)private Long id;private String name;@TableField(fill = FieldFill.INSERT)private LocalDateTime createTime;@TableField(fill = FieldFill.INSERT_UPDATE)private LocalDateTime updateTime;// Getters and Setters
}
  • @TableField(fill = FieldFill.INSERT):表示在插入数据时自动填充字段,如 createTime 字段在插入时自动赋值。
  • @TableField(fill = FieldFill.INSERT_UPDATE):表示在插入和更新时都会自动填充字段,如 updateTime 字段。

2.2 步骤 2:实现 MetaObjectHandler 接口

MyBatis-Plus 通过 MetaObjectHandler 接口来实现字段的自动填充功能。开发者需要实现该接口,并重写 insertFillupdateFill 方法。

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;import java.time.LocalDateTime;@Component
public class MyMetaObjectHandler implements MetaObjectHandler {// 插入时自动填充@Overridepublic void insertFill(MetaObject metaObject) {this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 自动填充创建时间this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 自动填充更新时间}// 更新时自动填充@Overridepublic void updateFill(MetaObject metaObject) {this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 自动填充更新时间}
}

在这个实现中:

  • insertFill:在插入操作时自动填充字段,例如将当前时间赋值给 createTimeupdateTime 字段。
  • updateFill:在更新操作时自动填充字段,通常只会更新 updateTime 字段。

2.3 步骤 3:注册 MetaObjectHandler

MetaObjectHandler 接口的实现类需要通过 @Component 注解标记为 Spring Bean,这样 Spring Boot 会自动扫描并注入到 MyBatis-Plus 中。

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {// 同上
}

3. 自动填充的场景应用(创建时间、更新时间)

3.1 创建时间(createTime

创建时间 字段通常在数据插入时自动填充。它记录了数据创建的时间,通常使用 LocalDateTime 类型存储。

实现示例

在实体类中,我们使用 @TableField(fill = FieldFill.INSERT) 来确保插入数据时自动填充 createTime 字段。

@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;

MetaObjectHandler 中,我们设置 insertFill 方法自动填充当前时间:

@Override
public void insertFill(MetaObject metaObject) {this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
}

3.2 更新时间(updateTime

更新时间 字段通常在数据更新时自动填充,记录数据最后一次修改的时间。updateTime 字段需要通过 @TableField(fill = FieldFill.INSERT_UPDATE) 注解来进行配置,使得在插入和更新时都能自动填充。

实现示例

在实体类中,我们使用 @TableField(fill = FieldFill.INSERT_UPDATE) 来确保插入和更新时自动填充 updateTime 字段。

@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;

MetaObjectHandler 中,我们设置 updateFill 方法自动填充当前时间:

@Override
public void updateFill(MetaObject metaObject) {this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
}

3.3 自动填充的效果

通过上述配置,在执行插入和更新操作时,MyBatis-Plus 会自动为 createTimeupdateTime 字段填充当前时间,无需开发者显式赋值。

User user = new User();
user.setName("John");
userService.save(user);  // 自动填充 createTime 和 updateTime

4. 配置与自定义填充规则

4.1 配置自动填充字段

在 MyBatis-Plus 中,我们可以通过 @TableField 注解的 fill 属性来指定需要自动填充的字段。当执行插入或更新操作时,Spring 会自动为这些字段填充值。

示例:配置自动填充字段
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;

4.2 自定义填充规则

如果需要自定义填充规则,例如在创建时使用自定义的时间格式或设置特定的字段值,可以在 MetaObjectHandler 中进行实现。

示例:自定义填充规则
@Override
public void insertFill(MetaObject metaObject) {this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());  // 自动填充当前时间this.strictInsertFill(metaObject, "status", Integer.class, 1);  // 自定义填充规则:status 默认值为 1
}

在此示例中,我们不仅自动填充 createTime 字段,还将 status 字段的默认值设置为 1


5. 总结

  • 自动填充功能 是 MyBatis-Plus 的一项强大特性,能够减少手动设置系统字段的工作,提升开发效率。
  • 通过 @TableField 注解中的 fill 属性,开发者可以轻松配置需要自动填充的字段,如 创建时间更新时间
  • 自定义填充规则 允许开发者在插入和更新时根据需求设置字段的默认值,进一步增强了灵活性。
  • 使用 MetaObjectHandler 接口,开发者可以灵活控制自动填充的字段,在 insertFillupdateFill 方法中定义自动填充规则。

通过 MyBatis-Plus 提供的自动填充功能,开发者可以更加高效地进行数据处理,减少代码冗余,并确保系统字段的一致性和正确性。 🚀

http://www.dtcms.com/wzjs/268452.html

相关文章:

  • 做热区的网站b站推广网站2024
  • wordpress电子商务站韶关今日头条新闻
  • 广东做网站优化公司报价培训中心
  • 网站集约化建设 技术百度关键词排名怎么查
  • 网站怎么做 流程图产品线上推广渠道
  • php如何自学做网站创意营销案例
  • 捡个杀手做老婆在哪个网站发布的域名查询seo
  • 如何在jsp上做网站页面代码百度关键词怎么排名
  • 百家号和网站同步做如何做网页
  • 12306网站是哪个公司做的管理培训课程
  • 茶叶网站建设策划方案u001f网站关键词排名查询工具
  • 成都科技网站建设电哈尔滨seo关键词排名
  • 宝安小学网站建设苏州seo关键词优化价格
  • 5a景区网站建设优化师的工作内容
  • 图书馆信息化网站建设百度关键词优化专家
  • 北京抖音代运营公司seo技术306
  • 网站建设绵阳百度浏览器官网入口
  • 做网站代码用什么软件创新驱动发展战略
  • 网站名称是否已被注册seo信息是什么
  • 网站模板建设二级目录网站关键词优化软件
  • 成都网站建设的公司哪家好友链交换网站源码
  • 杭州劳保网站制作登录百度
  • 怎么做私人网站如何把品牌推广出去
  • 拖拽式可视化编辑网站镇江网站建设方案
  • phpmysql网站开发技术广告联盟app推广
  • 建立网站功能外贸平台自建站
  • 国内做led灯网站有长沙疫情最新消息今天封城了
  • wordpress 任意下载优化大师电视版
  • 新注册公司网站建设百度百科分类方法
  • 免费搭建公司网站在百度上打广告找谁推广产品