文章目录
1. foreach
Mybatis Plus提供了foreach标签来简化在查询语句中使用in语句的操作。通过foreach可以将一个集合中的元素拼接成一个逗号分隔的字符串,并将其作为in语句的参数。
例如,我们可以使用foreach来生成一个动态的IN条件,查询符合多个条件的记录:
List<Integer> idList = Arrays.asList(1, 2, 3);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id", idList);
List<User> userList = userMapper.selectList(queryWrapper);
在上述代码中,我们通过selectList方法查询了id在1、2、3之间的用户记录。其中,in方法会动态生成一个IN条件,使用了foreach功能。
在SQL语句中,会生成以下代码:
SELECT * FROM user WHERE id IN (1, 2, 3)
可以看到,使用foreach可以很方便地动态生成IN条件,避免了手动拼接SQL字符串的麻烦。
另外,MyBatis Plus的foreach还支持其他功能,比如可以指定集合对象的属性和字段进行匹配,指定分隔符等。具体使用方法可以参考MyBatis Plus的官方文档。
注意,在使用foreach标签时,需要保证集合参数的名称和集合中对象的属性名称一致。例如,上述示例中的idList参数名称需要和User对象中的id属性名称一致。
除了上述示例中的in语句,foreach标签还可以用于其他类型的语句,例如update和delete语句中的set语句。
2. like
在MyBatis plus中,使用like查询可以使用like
方法来实现。
例如,假设我们有一个表格user
,其中有一个username
字段,我们想要查询username
字段中包含某个关键字的数据,可以使用以下代码:
String keyword = "admin";
List<User> userList = userMapper.selectList(new QueryWrapper<User>().like("username", keyword));
以上代码中,userMapper
是MyBatis plus生成的Mapper接口,User
是实体类,username
是表格user
中的字段名。new QueryWrapper<User>().like("username", keyword)
表示创建一个查询条件,使用like
方法指定查询的字段和关键字。
3. likeLeft
使用likeLeft
方法来实现左模糊查询,例如:
List<User> userList = userMapper.selectList(new QueryWrapper<User>().likeLeft("username", keyword));
以上代码中,likeLeft
方法表示左模糊查询,即查询username
字段以关键字开头的数据。
4. likeRight
使用likeRight
方法来实现左模糊查询,例如:
List<User> userList = userMapper.selectList(new QueryWrapper<User>().likeRight("username", keyword));
以上代码中,likeRight
方法表示右模糊查询,即查询username
字段以关键字结尾的数据。
需要注意的是,上述代码中的userMapper
需要根据实际情况进行替换,可以是自动生成的Mapper
接口,也可以是手动创建的Mapper接口的实现类。在MyBatis plus中,使用like查询可以使用like
方法来实现。