mybatis-plus的QueryWrapper的or方法如何对字段进行切割,并对处理后的字段使用like
时间: 2024-02-17 20:01:52 浏览: 24
Mybatis-plus的QueryWrapper的or方法可以通过使用Lambda表达式来对字段进行切割,并对处理后的字段使用like进行模糊查询。Lambda表达式可以使用QueryWrapper类中的静态方法来对字段进行切割操作,同时可以使用like方法进行模糊查询,例如:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.or(i -> i.eq("age", 18).or().apply("SUBSTR(name,1,3)={0}", "Tom").apply("SUBSTR(email,1,3) LIKE {0}", "%test%"));
List<User> userList = userMapper.selectList(wrapper);
```
上述代码中,Lambda表达式中使用了eq方法来判断年龄是否等于18,同时使用了apply方法来对name字段进行SUBSTR函数操作,获取其前三个字符,判断是否等于"Tom"。接着,又使用了apply方法来对email字段进行SUBSTR函数操作,获取其前三个字符,并使用LIKE操作符进行模糊查询,判断是否包含"test"。其中,apply方法可以接受一个SQL表达式,用于对字段进行切割操作,LIKE操作符可以接受一个字符串,用于进行模糊查询。
相关问题
mybatis-plus的QueryWrapper的or方法如何对字段进行切割,并使用like
Mybatis-plus的QueryWrapper的or方法可以通过使用Lambda表达式来对字段进行切割,并使用like进行模糊查询。Lambda表达式可以使用QueryWrapper类中的静态方法来对字段进行切割操作,同时可以使用like方法进行模糊查询,例如:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.or(i -> i.eq("age", 18).or().apply("SUBSTR(name,1,3)={0}", "Tom").like("email", "test"));
List<User> userList = userMapper.selectList(wrapper);
```
上述代码中,Lambda表达式中使用了eq方法来判断年龄是否等于18,同时使用了apply方法来对name字段进行SUBSTR函数操作,获取其前三个字符,判断是否等于"Tom"。接着,使用了like方法来对email字段进行模糊查询,判断是否包含"test"。其中,apply方法可以接受一个SQL表达式,用于对字段进行切割操作,like方法可以接受一个字符串,用于进行模糊查询。
mybatis-plus中有对指定字段进行模糊查询的方法吗
Mybatis-Plus中有对指定字段进行模糊查询的方法,可以使用QueryWrapper对象的like方法实现。
例如,如果您想在一个名为user的表中查询名字包含“张”的用户信息,可以使用以下代码:
```
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张");
List<User> userList = userMapper.selectList(queryWrapper);
```
其中,QueryWrapper是Mybatis-Plus提供的查询条件构造器,like方法用于设置模糊查询条件,第一个参数为要查询的字段名,第二个参数为要查询的关键词,这里是“张”。最后通过调用selectList方法,可以得到符合条件的用户信息列表。
需要注意的是,以上代码只能查询名字中包含“张”的用户信息,如果要查询名字以“张”开头或结尾的用户信息,需要在关键词前后加上%符号,例如:
```
queryWrapper.like("name", "%张");
queryWrapper.like("name", "张%");
```
这样就可以实现更加精确的模糊查询。