1.字段填充
具体实体
/**
* <p>
*
* </p>
*
* @author admin
* @since 2021-01-21
*/
@Data
@Accessors(chain = true)
@TableName("t_travel_diary")
public class TravelDiary extends Model<TravelDiary> {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 日记标题
*/
private String title;
/**
* 日记内容
*/
private String content;
/**
* 收藏数量
*/
private Integer favoriteNum;
/**
* 点赞数
*/
private Integer likeNum;
/**
* 评论数
*/
private Integer commentNum;
/**
* 状态:0不可用,1可用,2草稿箱
*/
private Integer status;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
@Override
protected Serializable pkVal() {
return this.id;
}
}
填充器
/**
* mybatis-plus 填充器
*/
@Slf4j
@Configuration
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert fill ....");
// 或者
this.setFieldValByName( "createTime",LocalDateTime.now(), metaObject); // 起始版本 3.3.3(推荐)
this.setFieldValByName( "updateTime",LocalDateTime.now(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill ....");
this.strictUpdateFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
}
}
2. Mybatis配置
/**
* mybatis配置
*
*/
@Configuration
public class MybatisConfig {
/**
* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 自动分页
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
// 防止全表更新与删除
interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
return interceptor;
}
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> configuration.setUseDeprecatedExecutor(false);
}
}
3. 常用控制台日志打印
mybatis-plus:
configuration:
# 打印执行 sql
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
4. 常用配置
mybatis-plus:
mapper-locations: classpath*:/mapper/**Mapper.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.duox.entity
typeEnumsPackage: com.duox.enums
global-config:
# 数据库相关配置
db-config:
#主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID",ASSIGN_ID:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
id-type: ASSIGN_ID
#数据库大写下划线转换
capital-mode: true
#逻辑删除配置
logic-delete-value: 1
logic-not-delete-value: 0
insert-strategy: not_null
update-strategy: not_null
select-strategy: not_null
- 本文链接: http://maltose.top/archives/mybatis-plus实际项目使用问题
- 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!