MybatisPlus之(lambda)QueryWrapper.apply 和.last 区别
apply方法和last方法都是Mybatis-Plus中LambdaQueryWrapper提供的方法,用于向查询中添加自定义的SQL语句或SQL片段。二者的区别在于:
- apply方法可以在查询条件中任意位置添加自定义的SQL语句或SQL片段,而last方法只能在SQL语句的最后添加自定义的SQL语句或SQL片段。
- apply方法可以接收一个Consumer类型的参数,用于构建复杂的查询条件,而last方法只能接收一个字符串类型的参数,表示要添加的SQL语句或SQL片段。
- apply方法适用于在查询条件中添加自定义的SQL语句或SQL片段,比如在where子句中添加自定义的条件。而last方法适用于在SQL语句的最后添加自定义的SQL语句或SQL片段,比如在order by子句或limit子句中添加自定义的语句。
以下是一个示例代码,展示了apply方法和last方法的使用情况:
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.apply("age > 18").last("order by id desc limit 10");
List<User> userList = userService.list(lambdaQueryWrapper);
在上述示例中,我们使用了apply方法向查询条件中添加了自定义的SQL语句age > 18,表示查询年龄大于18岁的记录。同时,我们使用了last方法向SQL语句中添加了自定义的SQL语句order by id desc limit 10,表示按照id字段进行降序排列,并且最多查询10条记录。
总之,在使用apply方法和last方法时,需要根据具体的需求选择合适的方法,并注意避免SQL注入攻击。如果你需要进行复杂的SQL操作,建议使用Mybatis-Plus的XML映射文件进行处理,可以更加灵活地控制SQL语句的生成和执行。