Mybatisplus日志
mybatis-plus.configuration.log-impl=org.apach.ibatis.logging.stdout.StdOutImpl
设置mp的主键生成策略
在实体类的主键上加注解 @TableId(type=IdType.AUTO)
ID_WORKER mp自带策略,生成19位值,数字类型使用这种策略,long
ID_WORKER_STR 字符串类型
自动填充
@TableField(fill = FieldFill.INSERT)
@TableField(fill = FieldFill.INSERT_UPDATE)
编写填充属性类 implement MetaObjectHandler
@Override
public void insertFill(MetaObject me) {
this.setFieldValueByName("createTime", new Date(), metaObject);
}
mp乐观锁实现
1.数据库添加字段 version
2.实体类添加注解@Version 和 @TableField(fill = FieldFill.INSERT)
3.元数据处理器接口添加version的insert默认值 setFieldValueByName("version", 1,
metaObject);
4.配置乐观锁插件
@EnableTransactionManager
@Configuration
@MapperSacn("com./...mapper")
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor(){
return new OptimisticLockerInterceptor();
}
取出记录时,获取当前version
更新时,带上version
执行更新时,set version = new Version where version = oldVersion
如果version不对,更新失败
mp简单操作
1.根据id查询/删除数据 userMapper.selectById deleteById
2.多个id批量查询/删除 userMapper.selectBatchIds(Array.asList(1L, 2L, 3L))
deleteBatchIds...
3.分页查询
1.配置分页插件
@Bean
public PageinationInterceptor pageinationInterceptor(){return new
PageinationInterceptor()}
2.Page<User> page = new Page<>(1,3)
userMapper.selectPage(page. null);
page的属性值,getCurrent //当前页 getRecords //每页数据list集合 getSize
//每页显示记录数 getTotal 总记录数 getPages 总页数 hasNext hasPrevious 是否有
上下页
mp 逻辑删除
1.字段加注解 @TableLogic
2.配置插件 @Bean ISqlInjector return new LogicSqlInjector()
3.加配置(可有可无) mybatis-plus.global-config.db-config.logic-delete-
value=1 ...logic-not-delete..=0
性能分析插件
...
Wapper
QueryWapper(常用)
QueryWapper<User> queryWapper = new QueryWapper<>()
queryWapper.eq("name", "Tom") ne
queryWapper.between("age", 20, 30) notbetween
allEq(map) map.put("id", 2); put("name", "Tom")
.....