<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                # MyBatis-Plus 中的 MetaObjectHandler 接口詳解 ## 背景 在日常開發中,我們經常需要處理一些公共字段的自動填充,例如在每次插入或更新數據時自動設置創建時間和更新時間。這些重復性的工作可以通過 MyBatis-Plus 提供的 `MetaObjectHandler` 接口來簡化,實現公共字段的自動填充,提高開發效率并減少代碼冗余。 ## 使用方法 ### 1. 實體類注解配置 首先,我們需要在實體類中使用 `@TableField` 注解標記出需要自動填充的字段,并指定對應的填充策略: ```java import com.baomidou.mybatisplus.annotation.*; import java.util.Date; @TableName("your_table") public class YourEntity { @TableId private Long id; private String name; @TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill = FieldFill.UPDATE) private Date updateTime; // 省略 getter 和 setter 方法 } ``` ### 2. 實現 MetaObjectHandler 接口 接下來,我們實現 `MetaObjectHandler` 接口,并定義插入和更新時字段的自動填充邏輯: ```java import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import java.util.Date; public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 插入操作自動填充 createTime } @Override public void updateFill(MetaObject metaObject) { this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date()); // 更新操作自動填充 updateTime } } ``` ### 3. 配置 MyBatis-Plus 最后,在 MyBatis-Plus 的配置類中注冊 `MyMetaObjectHandler` 實例,并配置插件: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; @Configuration public class MybatisPlusConfig { @Bean public MyMetaObjectHandler myMetaObjectHandler() { return new MyMetaObjectHandler(); } @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); // 可以添加其他的攔截器 return interceptor; } } ``` 現在,每當執行插入或更新操作時,MyBatis-Plus 會自動調用 `MyMetaObjectHandler` 實現的方法來填充 `createTime` 和 `updateTime` 字段。 ## 總結 `MetaObjectHandler` 是 MyBatis-Plus 提供的一個強大的接口,用于處理實體類公共字段的自動填充。通過實現此接口,我們可以極大地簡化對于創建時間、更新時間等字段的處理邏輯,使得代碼更加簡潔,并且保持了一致性和可維護性。這種自動填充功能是 MyBatis-Plus 的一大特色,能夠有效地提升開發效率。在實踐中,我們可以根據實際的業務需求來自定義填充策略,使其更貼合項目的需求。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看