文章目录
- 一、条件构造器
- 二、自定义SQL
- 第一步、基于wrapper构建where条件
- 第二步、在mapper中声明变量名称
- 第三步、自定义SQL
本篇继续MybatisPlus核心功能
一、条件构造器
MybatisPlus 支持各种复杂的where条件,可满足日常开发的所有需求。
使用到wrapper构造器,层次构造关系如下图所示。
二、自定义SQL
利用MaybatisPlus构建复杂where条件,自定义SQL语句剩余部分。
第一步、基于wrapper构建where条件
List<Long> ids = List.of(22L,33L,44L);
int amount = 500;
// 构造条件
LambdaQueryMapper<User> wrapper = new LambdaQueryMapper<User>.in(User::getId,ids);
// 自定义SQL调用
userMapper.updateAmountByIds(wrapper ,amount);
第二步、在mapper中声明变量名称
在mapper方法参数中用param注解声明wrapper变量名称,必须是ew。
void updateAmountByIds(@Param("ew") LambdaQueryMapper<User> wrapper,@Param("amount") int amount);
第三步、自定义SQL
自定义SQL,可直接使用wrapper条件。注意 id 要与 mapper 中定义的方法名一致。
<update id="updateAmountByIds">
update t_user set sumAmount = sumAmount - #{amount}${ew.customSqlSegment}
</update>