标签:return string cep 添加 自动 对象 好的 core 控制
1.开启日志功能,在yml配置文件添加配置
mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
2.主键生成策略, 在主键ID上添加注解即可,关于id生成的一些策略:https://www.cnblogs.com/haoxinyue/p/5208136.html
// 默认 ID_WORKER @TableId(type = IdType.ID_WORKER_STR) private Long id;
public enum IdType {
// 自增
AUTO(0),
NONE(1),
// 手动输入
INPUT(2),
// 唯一id生成器
ID_WORKER(3),
// uuid
UUID(4),
// 唯一id生成器(字符串类型)
ID_WORKER_STR(5); }
3.更新策略,数据添加两个时间字段,create_time、update_time 添加时间、修改时间,添加时间字段、注解,编写注解的处理器
// 时间的操作(自动更新) @TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.util.Date; // MetaObjectHandler 元对象处理 @Component public class MyMetaObjectHandler implements MetaObjectHandler { // 插入的策略 @Override public void insertFill(MetaObject metaObject) { // this.setFieldValByName()设置当前字段的值! // String fieldName, Object fieldVal, MetaObject metaObject // 以后只要是插入操作就会自动控制 // createTime updateTime 使用 new Date() 进行填充 this.setFieldValByName("createTime",new Date(),metaObject); this.setFieldValByName("updateTime",new Date(),metaObject); } // 更新策略 @Override public void updateFill(MetaObject metaObject) { this.setFieldValByName("updateTime",new Date(),metaObject); } }
4.乐观锁,数据库添加version字段(int)version,添加version注解到字段上面,添加 乐观锁插件即可,就自动带上了版本号
@Version private Integer version;
import com.baomidou.mybatisplus.core.injector.ISqlInjector; import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector; import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; @Configuration public class MPconfig { // 注入人家写好的插件处理器 // 本质是一个拦截器 Interceptor @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } }
5.分页查询
在上面的 MPconfig 添加插件
// 分页插件 @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); }
6.逻辑删除Delete,数据添加字段(int)deleted,实体类添加字段及注解
在上面的 MPconfig 添加插件
@TableLogic // 逻辑删除字段! private Integer deleted;
// 逻辑删除插件! @Bean public ISqlInjector sqlInjector() { return new LogicSqlInjector(); }
7.性能分析
在上面的 MPconfig 添加插件
// SQL执行效率插件 @Bean @Profile({"dev","test"})// 设置 dev test 环境开启 public PerformanceInterceptor performanceInterceptor() { PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor(); // 允许执行的sql的最长时间 , 默认的单位是ms performanceInterceptor.setMaxTime(1000); performanceInterceptor.setFormat(true); // 格式化SQL代码 return performanceInterceptor; }
最后完整的插件配置类
import com.baomidou.mybatisplus.core.injector.ISqlInjector; import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector; import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; @Configuration public class MPconfig { // 注入人家写好的插件处理器 // 本质是一个拦截器 Interceptor @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } // 分页插件 @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } // 逻辑删除插件! @Bean public ISqlInjector sqlInjector() { return new LogicSqlInjector(); } // SQL执行效率插件 @Bean @Profile({"dev","test"})// 设置 dev test 环境开启 public PerformanceInterceptor performanceInterceptor() { PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor(); // 允许执行的sql的最长时间 , 默认的单位是ms performanceInterceptor.setMaxTime(1000); performanceInterceptor.setFormat(true); // 格式化SQL代码 return performanceInterceptor; } }
标签:return string cep 添加 自动 对象 好的 core 控制
原文地址:https://www.cnblogs.com/418836844qqcom/p/14130158.html