介绍
这篇文章运用简单易懂的例子给大家介绍使用MybatisPlus如何实现自动填充功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
使用下面的注解设置填充的时机,例如<代码>插入、更新代码>语句
@TableField(填补=FieldFill.INSERT)
有下面4种规则
源码
/* * *字段填充策略枚举类 * * & lt; p> *判断注入的插入和更新的sql脚本是否在对应情况下忽略掉字段的如果标签生成 * & lt;如果测试=啊霸凇? lt;/if> *判断优先级比{@link FieldStrategy}高 * & lt;/p> * * @author湖滨 * @since 2017-06-27 */公共enum FieldFill {/* * *默认不处理 */默认情况下,/* * *插入时填充字段 */插入,/* * *更新时填充字段 */更新,/* * *插入和更新时填充字段 */INSERT_UPDATE }
创建一个类实现议员提供的<代码> MetaObjectHandler 代码>接口
进口com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; 进口org.apache.ibatis.reflection.MetaObject; 进口org.springframework.stereotype.Component; 进口java.time.LocalDateTime; @ component 公共类MyMetaObjectHandler实现MetaObjectHandler { @Override 公共空间insertFill (MetaObject MetaObject) { setFieldValByName(“字段名,例如用户的createTime", LocalDateTime.now (), metaObject); } @Override 公共空间updateFill (MetaObject MetaObject) { setFieldValByName(“字段名,例如用户的updateTime", LocalDateTime.now (), metaObject); } }
注意请将中文去掉换成自己实体对象的字段名
测试代码:
用户用户=新用户(); user.setName(“张三“); user.setAge (12); user.setAge (12); user.setId l (11111111111); user.setEmail (“someone@qq.com"); user.setManagerId l (1087982257332887553); int插入=userMapper.insert(用户); System.out.println(“插”入“+插入);
检测表中数据:
说明成功
<>强优化填充规则强>
案例代码:
进口com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; 进口org.apache.ibatis.reflection.MetaObject; 进口org.springframework.stereotype.Component; 进口java.time.LocalDateTime; @ component 公共类MyMetaObjectHandler实现MetaObjectHandler { @Override 公共空间insertFill (MetaObject MetaObject) { 布尔createTime=metaObject.hasSetter (“createTime");//如果有这个字段返回现实 如果(createTime){//如果字段不存在则不进行下面的填充 setFieldValByName (“createTime" LocalDateTime.now (), metaObject); } } @Override 公共空间updateFill (MetaObject MetaObject) { 对象updateTime=getFieldValByName (“updateTime" metaObject); 如果(null==updateTime){//没有设置updateTime值则进行填充如果有设置值则不进行填充 setFieldValByName (“updateTime" LocalDateTime.now (), metaObject); } } }
关于使用MybatisPlus如何实现自动填充功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。