mybatis-plus
mybatis-plus copied to clipboard
【优化建议】关于从Wrapper中分离Where条件的建议
当前使用版本(必填,否则不予处理)
3.5.2
背景/痛点
Wrapper太重了,而且无法限制调用方应该传入QueryWrapper还是UpdateWrapper。
需求
因为Wrapper本身的定位是用于java代码拼装select/update/delete类型的SQL语句,这三种语句有个共同的地方就是都可以包含where语句。
-
delete语句:只需要where条件
-
update语句:set子句+where
-
select语句:join + where + having + group by + order by
因此我认为可以封装一个where条件工具,使得接口定义像下面这样:
delete(Where where);
update(String column1, Object value1, Where where);
selectList(Where where);
这样看起来更加清楚明了。
期望
- 提供一个封装where条件的工具。参考AbstractWrapper中where条件相关部分;
- 最好是同时支持string版的column和lambda版的column
- string版的column需要防止sql注入;
- 还需要支持"a.xyz" 这样的列名称,用于join语句后的where条件;
- 提供转字符串的方法,方便在XML中引用;
欢迎直接PR