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

广州市制网公司seo推广教学

广州市制网公司,seo推广教学,巴彦淖尔专业做网站的,wordpress 邮件服务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/46627.html

相关文章:

  • 利用excel做填报网站聊城seo整站优化报价
  • 三层网络架构长沙seo推广公司
  • 音乐分享 wordpress西安官网seo技术
  • 做的比较好的二手交易网站有哪些sem推广竞价托管公司
  • 代理服务器地址是什么意思惠州seo优化服务
  • 广州网站建设建航特大新闻凌晨刚刚发生
  • php装饰公司网站源码网站seo如何优化
  • 微信上的网站怎么做网站如何快速收录
  • 宁波企业网站制作推荐seo 页面
  • 阿里云wordpress更新谷歌优化工具
  • 天地做网站站内营销推广途径
  • 装修怎么做网站自己做网站设计制作
  • photoshop做网站设计营销策略从哪几个方面分析
  • 万网虚拟云空间怎么建设网站seo经理招聘
  • 怎样在网站上做销售微博推广价格表
  • 织梦dedecms医院类网站在线预约挂号插件_utf8seo最新技巧
  • 网站开发有哪些公司301313龙虎榜
  • 福州朝阳房产网站建设本周国内新闻
  • 武汉做网站珠海百度seo
  • PR做视频需要放网站上天津seo排名公司
  • 新光途网站建设网络媒体
  • 永久网站域名注册长沙搜索排名优化公司
  • 有了源码怎么做网站seo技巧优化
  • 深圳建设网站费用明细百度提问登陆入口
  • 营销策略是什么常用seo站长工具
  • 做网站的目的和要求营销推广平台
  • 网站类型大全山东今日热搜
  • 龙岩网站建设品牌运营总监
  • 南京专业做网站的公司有哪些网站怎么做外链
  • 拿word如何做网站免费seo培训