当前位置:首页 > 编程笔记 > 正文
已解决

MP、MybatisPlus、联表查询、自定义sql、Constants.WRAPPER、ew (二)

来自网友在路上 154854提问 提问时间:2023-09-30 15:40:51阅读次数: 54

最佳答案 问答题库548位专家为你答疑解惑

描述: 给定一个id列表,更新对应列表中动物的年龄,使得年龄都较少一岁。

要求:使用条件构造器构造条件。

 mapper:

   void updateAnimalAge(@Param(Constants.WRAPPER) Wrapper<Animal> wrapper, @Param("age") int reducedAge);

xml:

    <update id="updateAnimalAge">update `animal` set `age` = `age` - #{age}<where>${ew.sqlSegment}</where></update>

service:

    @org.junit.Testpublic void test() {ArrayList<String> strings = Lists.newArrayList();strings.add("1775e2db7fb5e0d9b8e98d4137f58b91");strings.add("23d210703b33bd67b901e147f874a831");int reducedAge = 1;LambdaQueryWrapper<Animal> wrapper = new QueryWrapper<Animal>().lambda();wrapper.in(Animal::getId,strings);this.animalMapper.updateAnimalAge(wrapper,reducedAge);
//
//        if (successful.size() > 0) {
//            System.out.println("success!!");
//        } else {
//            System.out.println("failed!!");
//        }}

sql:

JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@3c50ad4b] will not be managed by Spring
==>  Preparing: update `animal` set `age` = `age` - ? WHERE (id IN (?,?)) 
==> Parameters: 1(Integer), 1775e2db7fb5e0d9b8e98d4137f58b91(String), 23d210703b33bd67b901e147f874a831(String)
<==    Updates: 2

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"MP、MybatisPlus、联表查询、自定义sql、Constants.WRAPPER、ew (二)":http://eshow365.cn/6-15519-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!