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

描述: 给定一个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
相关推荐
sheji34166 分钟前
【开题答辩全过程】以 小区物业管理APP为例,包含答辩的问题和答案
java
数据知道7 分钟前
PostgreSQL 实战:索引的设计原则详解
数据库·postgresql
星辰徐哥17 分钟前
Java程序的编译与运行机制
java·开发语言·编译·运行机制
老毛肚17 分钟前
Spring 6.0基于JDB手写定制自己的ROM框架
java·数据库·spring
Sylvia-girl20 分钟前
线程安全问题
java·开发语言·安全
CodeBlossom23 分钟前
MySQL进阶 索引
数据库·mysql
沛沛老爹27 分钟前
Web开发者转型AI安全实战:Agent Skills敏感数据脱敏架构设计
java·开发语言·人工智能·安全·rag·skills
曹轲恒28 分钟前
Java并发包atomic原子操作类
java·开发语言
cyforkk32 分钟前
03、Java 基础硬核复习:流程控制语句的核心逻辑与面试考点
java·开发语言·面试
未来之窗软件服务35 分钟前
数据库优化提速(四)数据库数据批量补齐—仙盟创梦IDE
数据库·数据库调优·仙盟创梦ide·东方仙盟