- QueryWrapper:最基础的查询方式,需要手写字段,并且查询和条件需要分开
- LambdaQueryWrapper:在QueryWrapper基础上支持lambda表达式
- QueryChainWrapper:在QueryWrapper基础上支持链式查询 (QueryWrapper增强版,条件和page、list、count、one、exists查询不必分开写,可直接链式进行查询)
- 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;
}