草稿

zy123
2025-03-21 /  0 评论 /  0 点赞 /  1 阅读 /  354 字
最近更新于 05-21

主要区别在于它们的用途能执行的操作不同:

特性 lambdaQuery() lambdaUpdate()
主要用途 构造查询条件,执行 SELECT 操作 构造更新条件,执行 UPDATE(或逻辑删除)操作
返回类型 LambdaQueryChainWrapper<T>LambdaQueryWrapper<T> LambdaUpdateChainWrapper<T>LambdaUpdateWrapper<T>
支持的方法 .eq(), .like(), .gt(), .orderBy(), .select() .eq(), .lt(), .set(), .setSql()
执行方法 .list(), .one(), .page() .update(), .remove()(逻辑删除)

举例对比

  1. 查询:lambdaQuery()

    // 查出状态为 1,名字中含 “张”,并按年龄降序的前 10 条用户
    List<User> list = userService.lambdaQuery()
        .eq(User::getStatus, 1)
        .like(User::getName, "张")
        .orderByDesc(User::getAge)
        .last("LIMIT 10")
        .list();
    
  2. 更新:lambdaUpdate()

    // 把状态为 0,且注册时间超过两年的用户标记为状态 2
    boolean ok = userService.lambdaUpdate()
        .eq(User::getStatus, 0)
        .lt(User::getRegisterTime, LocalDate.now().minusYears(2))
        .set(User::getStatus, 2)
        .update();
    

小结

  • lambdaQuery() 构造查询条件,只做 操作。
  • lambdaUpdate() 构造更新条件,结合 .set() 指定要修改的字段,做 (或 “逻辑删”)操作。

它们都是为了解决写 SQL 时硬编码字段名的问题,通过 User::getXxx 方法引用,保证 类型安全重构无忧

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
取消