哪个小说网站版权做的好处,镇江seo网站优化,wordpress阅读量统计,空间设计大师由于SQL不能写在业务层#xff0c;所以可以利用MyBatisPlus的Wrapper来构建复杂的Where条件#xff0c;然后自己定义SQL语句中剩下的部分
①基于Wrapper 构建Where条件 Testpublic void test7(){//需求#xff1a;将id满足ids的数据项的balance字段减200int amount200;List…由于SQL不能写在业务层所以可以利用MyBatisPlus的Wrapper来构建复杂的Where条件然后自己定义SQL语句中剩下的部分
①基于Wrapper 构建Where条件 Testpublic void test7(){//需求将id满足ids的数据项的balance字段减200int amount200;ListLong idsList.of(1L, 2L,3L);//构建条件,使用Lambda 形式获取参数类型LambdaQueryWrapperUser wrapper new LambdaQueryWrapperUser().in(User::getId, ids);//调用自定义方法userMapper.updateBalanceByIds(wrapper, amount);}
②在mapper方法中使用Param注解声明wrapper变量名称必须是ew
Mapper
public interface UserMapper extends BaseMapperUser {/*自定义SQL在mapper方法的参数中使用Param注解Wrapper变量名称且名称必须为ew使用 ew 作为命名是为了统一约定通常表示 Entity Wrapper这样可以直接在 SQL 语句中使用 ${ew} 作为查询条件的占位符。*/void updateBalanceByIds(Param(ew)LambdaQueryWrapperUser wrapper,Param(amount) int amount);
}③自定义SQL并且使用Wrapper条件
mapper namespacecom.example.demo.mapper.UserMapperupdate idupdateBalanceByIdsUPDATE tb_user SET balance balance - #{amount} ${ew.customSqlSegment}/update
/mapper