如何使用Java的QueryWrapper通过List集合执行LIKE模式的数据库查询?
时间: 2024-10-24 15:04:33 浏览: 26
在Java中,如果你想要使用QueryWrapper(Spring Data JPA中的工具类)通过List集合执行LIKE模式的数据库查询,通常你会首先创建一个QueryWrapper实例,然后设置匹配条件并结合`lambda expressions`。假设你想在一个用户表(User)中搜索名字包含特定字符的用户,你可以这样做:
```java
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
// 创建一个QueryWrapper实例
QueryWrapper<User> wrapper = new QueryWrapper<>();
// 如果你想搜索名字中含有"abc"的所有用户
String keyword = "abc";
wrapper.like("name", "%" + keyword + "%");
// 使用列表来执行批量查询,这里我们假设你有一个UserIds列表
List<Integer> userIds = ...; // 用户ID列表
// 创建一个Specification对象,将QueryWrapper转换为可排序、分页的查询条件
List<Specification<User>> specs = userIds.stream()
.map(userId -> Specification.where(wrapper).eq("id", userId))
.collect(Collectors.toList());
Page<User> page = userMapper.findAll(specs, PageRequest.of(pageNumber,.pageSize, Sort.by(Sort.Direction.DESC, "id")));
// 现在page中就是满足条件的用户列表了
```
阅读全文