Born To Simplify Development
在使用MyBatis-Plus
过程中,还是发现有一些不太完善的地方。因为对MybatisPlus
相关代码较为熟悉,所以在发现这些问题之后可以很好的进行调整优化。目前该版本主要是维护一个自己和自己公司的一个使用版本(目前基于v3.5.3.1
)
文档之类的参照之前的MyBatis-Plus官网
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
//原
return maybeDo(condition,()->{
String sql=formatParam(mapping,val);
sqlSet.add(columnToString(column)+Constants.EQUALS+sql);
});
//现
return maybeDo(condition,()->sqlSet.add(columnToString(column)+Constants.EQUALS+val.toString()));
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
//原
return maybeDo(condition,()->{
String sql=formatParam(mapping,val);
sqlSet.add(column+Constants.EQUALS+sql);
});
//现
return maybeDo(condition,()->sqlSet.add(column+Constants.EQUALS+val.toString()));
com.baomidou.mybatisplus.core.metadata.IPage
去除convert
方法com.baomidou.mybatisplus.core.mapper.BaseMapper
精简com.baomidou.mybatisplus.extension.conditions
包下所有类修改- 新增
com.baomidou.mybatisplus.extension.conditions.delete.LambdaDeleteChainWrapper
- 删除
com.baomidou.mybatisplus.extension.conditions.query.ChainQuery
- 删除
com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper
- 调整实现
com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper
- 调整实现
com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper
- 删除
com.baomidou.mybatisplus.extension.conditions.update.ChainUpdate
- 删除
com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper
- 删除
com.baomidou.mybatisplus.extension.conditions.ChainWrapper
com.baomidou.mybatisplus.extension.kotlin.KtUpdateWrapper
(当前版本删除)
//原
return maybeDo(condition){
val sql=formatParam(mapping,value)
sqlSet.add(columnsToString(column)+Constants.EQUALS+sql)
}
//现
return maybeDo(condition){
sqlSet.add(columnsToString(column)+Constants.EQUALS+value.toString())
}
- 删除
com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO
- 添加方法
com.baomidou.mybatisplus.core.toolkit.StringUtils#resolveFieldName
- 重新实现
com.baomidou.mybatisplus.extension.service.IService
- 重新实现
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
- 调整
com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
,兼容shardingsphere
- 增加方法:
com.baomidou.mybatisplus.core.injector.AbstractMethod#forceSqlSet
- com.baomidou.mybatisplus.extension.toolkit.Db(写的很好,但是不符合目前的封装。故删除,重新实现)
- com.baomidou.mybatisplus.extension.toolkit.SimpleQuery(写的很好,但是不符合目前的封装。故删除,重新实现)
- 自定义实现表结构检查,避免上线SQL遗漏导致语句报错
- 实现分页对象在
fegin
下传递不友好的情况下 - MySQL、PostgreSQL下Upsert实现(已抽象,可以实现对应的方法进行其他数据库的支持)
- 解决MybatisPlus一直以来的Batch方式的实现槽点以及事务等其他BUG
- 解决批量增加修改时,自动填充失效的问题
- 增强调用
update
方法时,可以自定义属性强制赋值(不会过滤null
值)