Mybatis-Plus 动态查询
时间: 2024-01-11 14:47:20 浏览: 97
mybatis-plus+动态数据源
5星 · 资源好评率100%
Mybatis-Plus 是 Mybatis 的增强工具,它提供了很多实用的功能,其中包括动态查询。使用 Mybatis-Plus 的动态查询可以方便地根据不同条件来构建 SQL,从而满足不同的查询需求。
Mybatis-Plus 的动态查询主要利用了它提供的 QueryWrapper 和 LambdaQueryWrapper 类。这两个类可以根据传入的条件动态构建 SQL,其中 QueryWrapper 主要通过传入一个 Map 对象来构建 SQL,而 LambdaQueryWrapper 则是通过传入一个 Lambda 表达式来构建 SQL。
下面是一个使用 QueryWrapper 进行动态查询的示例:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("age", 18);
wrapper.like("name", "张");
List<User> userList = userMapper.selectList(wrapper);
```
上述代码中,我们先创建了一个 QueryWrapper 对象,然后通过调用 eq 和 like 方法来动态构建 SQL。最后,我们调用了 selectList 方法来执行查询。
除了 eq 和 like 方法外,QueryWrapper 还提供了很多其他的方法,比如 gt、lt、ge、le 等方法,可以根据不同的需求来动态构建 SQL。
LambdaQueryWrapper 的用法与 QueryWrapper 类似,只不过它的条件是通过一个 Lambda 表达式来传入的。例如:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getAge, 18);
wrapper.like(User::getName, "张");
List<User> userList = userMapper.selectList(wrapper);
```
上述代码中,我们通过传入一个 Lambda 表达式来构建 SQL,其中 User::getAge 和 User::getName 分别表示 User 实体类中的 age 和 name 属性。
总之,Mybatis-Plus 的动态查询功能可以帮助我们根据不同条件来构建 SQL,使得查询更加灵活和高效。
阅读全文