mybatis-plus入参是List<String> ,怎么使用like查询
时间: 2024-03-01 09:56:11 浏览: 115
如果你想使用 MyBatis-Plus 进行 like 查询,并且参数是 List<String> 类型,可以使用 LambdaQueryWrapper 来构建查询条件,具体可以参考以下代码示例:
```java
List<String> nameList = Arrays.asList("Tom", "Jerry", "Bob");
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>()
.like(User::getName, nameList.get(0))
.or()
.like(User::getName, nameList.get(1))
.or()
.like(User::getName, nameList.get(2));
List<User> users = userMapper.selectList(wrapper);
```
以上代码中,我们使用了 LambdaQueryWrapper 来构建查询条件,其中使用了 like 方法进行 like 查询,方法参数第一个参数是要查询的字段,第二个参数是要查询的值,这里我们传入了 List<String> 类型的 nameList,通过 get 方法获取其中的值来进行 like 查询,使用 or 方法进行多个 like 查询的拼接,最后通过 selectList 方法执行查询操作。
相关问题
mybatis-plus入参是List<String> ,怎么使用like进行模糊查询
如果你想使用 MyBatis-Plus 进行模糊查询,并且参数是 List<String> 类型,可以使用 LambdaQueryWrapper 来构建查询条件,具体可以参考以下代码示例:
```java
List<String> nameList = Arrays.asList("Tom", "Jerry", "Bob");
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>()
.like(User::getName, "%" + nameList.get(0) + "%")
.or()
.like(User::getName, "%" + nameList.get(1) + "%")
.or()
.like(User::getName, "%" + nameList.get(2) + "%");
List<User> users = userMapper.selectList(wrapper);
```
以上代码中,我们使用了 LambdaQueryWrapper 来构建查询条件,其中使用了 like 方法进行模糊查询,方法参数第一个参数是要查询的字段,第二个参数是要查询的值,这里我们传入了 List<String> 类型的 nameList,通过 get 方法获取其中的值来进行 like 查询,使用 or 方法进行多个 like 查询的拼接,最后通过 selectList 方法执行查询操作。需要注意的是,我们在传入参数时,需要在参数的两端加上 `%` 符号,表示在模糊匹配时,匹配前后可以有任意字符。
用mybatis-plus-join写一个迷糊查询
首先,需要在pom.xml中添加mybatis-plus和数据库驱动的依赖:
```xml
<dependencies>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
```
接着,创建实体类和mapper接口,以User和Order为例:
User实体类:
```java
@Data
public class User {
private Long id;
private String name;
private Integer age;
}
```
UserMapper接口:
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
```
Order实体类:
```java
@Data
public class Order {
private Long id;
private Long userId;
private String orderNo;
private Date createTime;
}
```
OrderMapper接口:
```java
@Mapper
public interface OrderMapper extends BaseMapper<Order> {
}
```
然后,在UserService中使用mybatis-plus-join实现迷糊查询:
```java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
@Autowired
private OrderMapper orderMapper;
public List<User> findUsersByNameLike(String name) {
QueryWrapper<User> userWrapper = new QueryWrapper<>();
userWrapper.like("name", name);
return userMapper.selectList(userWrapper);
}
public List<User> findUsersByOrderCreateTimeBetween(Date start, Date end) {
QueryWrapper<User> userWrapper = new QueryWrapper<>();
userWrapper.inSql("id", "select user_id from `order` where create_time between #{start} and #{end}");
return userMapper.selectList(userWrapper);
}
public List<User> findUsersByOrderNoLike(String orderNo) {
QueryWrapper<User> userWrapper = new QueryWrapper<>();
userWrapper.inSql("id", "select user_id from `order` where order_no like concat('%', #{orderNo}, '%')");
return userMapper.selectList(userWrapper);
}
public List<User> findUsersByOrderNoLikeAndAgeBetween(String orderNo, Integer startAge, Integer endAge) {
QueryWrapper<User> userWrapper = new QueryWrapper<>();
userWrapper.inSql("id", "select user_id from `order` where order_no like concat('%', #{orderNo}, '%')")
.between("age", startAge, endAge);
return userMapper.selectList(userWrapper);
}
}
```
其中,findUsersByNameLike方法实现了根据用户姓名模糊查询的功能;findUsersByOrderCreateTimeBetween方法实现了查询在某个时间范围内下单的用户列表;findUsersByOrderNoLike方法实现了根据订单号模糊查询的功能;findUsersByOrderNoLikeAndAgeBetween方法实现了根据订单号模糊查询,并且年龄在某个范围内的用户列表。
阅读全文
相关推荐
















