QueryWrapper是Mybatis-Plus中的查询条件构造器,我们可以利用QueryWrapper来方便地构造SQL查询语句。这里就来介绍一下QueryWrapper的基本使用方法。
1、引入QueryWrapper类
在使用QueryWrapper之前,我们需要先引入QueryWrapper类。如果你是使用Maven进行项目构建的,只需要在pom.xml文件中添加依赖即可:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0<ersion>
</dependency>
如果你是使用Gradle构建项目的,可以在build.gradle文件中添加如下代码:
implementation 'com.baomidou:mybatis-plus-boot-starter:3.2.0'
2、创建QueryWrapper对象
接下来我们需要创建一个QueryWrapper对象。创建的方式很简单,只需要通过QueryWrapper的构造方法即可:
QueryWrapper<User> wrapper = new QueryWrapper<>();
这里需要注意的是,我们在创建QueryWrapper的时候,需要指定泛型类型,这个泛型类型就是我们要查询的实体类类型。在这个例子中,我要查询的是User实体类的数据,所以指定了泛型类型为User。
3、添加查询条件
QueryWrapper的核心功能就是添加查询条件。我们可以通过调用QueryWrapper的方法来构造查询条件,这些方法包括:
eq:等于
ne:不等于
gt:大于
ge:大于等于
lt:小于
le:小于等于
between:在某个范围之间
notBetween:不在某个范围之间
like:模糊查询
notLike:不是某个值的模糊查询
in:在某个集合中
notIn:不在某个集合中
isNull:值为null
isNotNull:值不为null
我们可以通过这些方法来构造出任何需要的查询条件。例如,如果我想查询id为1的User对象,可以写出下面的代码:
wrapper.eq("id", 1);
这里的eq是QueryWrapper的方法,表示等于。首先我们传入了一个字符串id,该字符串表示实体类中的一个属性名。怎么表示呢?我们可以直接写出属性的名字,也可以使用Java内置的反射机制来动态获取属性名,例如:
wrapper.eq(User.class.getField("id").getName(), 1);
接下来我们传入了一个整型1,表示要查找id等于1的User对象。
4、执行查询
查询条件构造完成后,我们需要将QueryWrapper对象传入到Mybatis-Plus的查询方法中。查询方法有很多,这里只介绍其中的一个——selectList,表示查找多个结果集。例如:
List<User> userList = userMapper.selectList(wrapper);
在查询完成后,我们就可以得到查询结果集的List对象userList,该对象包含了所有符合条件的User对象,我们可以根据需要来处理这些结果。