MybatisPlus的QueryWrapper、LambdaQueryWrapper、QueryChainWrapper、LambdaQueryChainWrapper之间有什么区别

  1. QueryWrapper:最基础的查询方式,需要手写字段,并且查询和条件需要分开
  2. LambdaQueryWrapper:在QueryWrapper基础上支持lambda表达式
  3. QueryChainWrapper:在QueryWrapper基础上支持链式查询 (QueryWrapper增强版,条件和page、list、count、one、exists查询不必分开写,可直接链式进行查询)
  4. LambdaQueryChainWrapper:在QueryWrapper基础上同时支持lambda表达式和链式查询
  • 带lambda的支持lambda表达式
  • 带chain的支持链式写法(条件和查询方法不必分开写

示例代码如下

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
import com.baomidou.mybatisplus.extension.toolkit.ChainWrappers;
import lombok.Data;


public interface UserMapper extends BaseMapper<User> {
    default void select(Long id, String name) {

        // 1.1 QueryWrapper查询
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("id", id).eq("name", name);
        selectList(queryWrapper);


        // 1.2 在QueryWrapper基础上支持lambda表达式
        LambdaQueryWrapper<User> lambdaQueryWrapper = Wrappers.lambdaQuery(User.class);
        lambdaQueryWrapper
                .eq(User::getId, id)
                .eq(User::getName, name);
        selectList(queryWrapper);


        // 1.2 QueryChainWrapper:在QueryWrapper基础上支持链式查询 (QueryWrapper增强版,条件和page、list、count、one、exists查询不必分开写,可直接链式进行查询)
        QueryChainWrapper<User> queryChainWrapper = ChainWrappers.queryChain(User.class);
        queryChainWrapper
                .eq("id", id)
                .eq("name", name)
                .list();


        // 4.LambdaQueryChainWrapper:在QueryWrapper基础上同时支持lambda表达式和链式查询
        LambdaQueryChainWrapper<User> lambdaQueryChainWrapper = ChainWrappers.lambdaQueryChain(User.class);
        lambdaQueryChainWrapper 
                .eq(User::getId, id)
                .eq(User::getName, name)
                .list();

    }
}

@Data
class User {
    private Long id;
    private String name;

}

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值