描述: 给定一个id列表,更新对应列表中动物的年龄,使得年龄都较少一岁。
要求:使用条件构造器构造条件。
mapper:
java
void updateAnimalAge(@Param(Constants.WRAPPER) Wrapper<Animal> wrapper, @Param("age") int reducedAge);
xml:
sql
<update id="updateAnimalAge">
update `animal` set `age` = `age` - #{age}
<where>
${ew.sqlSegment}
</where>
</update>
service:
java
@org.junit.Test
public 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:
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