MyBatis MetaObjectHandler 是 MyBatis 提供的一個接口,用于處理實體類中的元數據信息,包括自動填充數據庫中的字段值。要定制 MetaObjectHandler,可以按照以下步驟進行操作:
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime", new Date(), metaObject); // 自動填充 createTime 字段為當前時間
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", new Date(), metaObject); // 自動填充 updateTime 字段為當前時間
}
}
<bean id="myMetaObjectHandler" class="com.example.MyMetaObjectHandler"/>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="plugins">
<array>
<bean class="com.baomidou.mybatisplus.extension.plugins.PaginationInnerInterceptor"/>
<ref bean="myMetaObjectHandler"/>
</array>
</property>
</bean>
public class User {
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
// 省略其他字段和方法
}
通過以上步驟,就可以實現 MyBatis MetaObjectHandler 的定制,自動填充實體類中的字段值。