mybatis-plus的QueryWrapper的or方法如何对字段进行函数操作
Mybatis-plus的QueryWrapper的or方法可以通过使用Lambda表达式来对字段进行函数操作。Lambda表达式可以使用QueryWrapper类中的静态方法来对字段进行函数操作,例如:
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.or(i -> i.eq("age", 18).or().apply("YEAR(create_time)={0}", 2021));
List<User> userList = userMapper.selectList(wrapper);
上述代码中,Lambda表达式中使用了eq方法来判断年龄是否等于18,同时使用了apply方法来对create_time字段进行YEAR函数操作,判断是否等于2021年。其中,apply方法可以接受一个SQL表达式,用于对字段进行函数操作。
mybatis-plus的QueryWrapper的or方法如何对字段进行切割
Mybatis-plus的QueryWrapper的or方法可以通过使用Lambda表达式来对字段进行切割。Lambda表达式可以使用QueryWrapper类中的静态方法来对字段进行切割操作,例如:
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.or(i -> i.eq("age", 18).or().apply("SUBSTR(name,1,3)={0}", "Tom"));
List<User> userList = userMapper.selectList(wrapper);
上述代码中,Lambda表达式中使用了eq方法来判断年龄是否等于18,同时使用了apply方法来对name字段进行SUBSTR函数操作,获取其前三个字符,判断是否等于"Tom"。其中,apply方法可以接受一个SQL表达式,用于对字段进行切割操作。
mybatis-plus queryWrapper apply()方法使用
MyBatis-Plus 是一个 MyBatis 的增强工具,它提供了很多便捷的功能来简化数据库操作。其中,QueryWrapper 是 MyBatis-Plus 提供的一个查询构造器,用于构建复杂的查询条件。
apply 方法是 QueryWrapper 的一个方法,用于将一个函数应用到 QueryWrapper 上。它接受一个 Consumer 函数式接口作为参数,通过 lambda 表达式可以对 QueryWrapper 进行进一步的定制。
下面是 apply 方法的使用示例:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(User::getStatus, 1)
.apply("date_format(create_time,'%Y-%m-%d') = {0}", "2021-01-01");
List<User> userList = userMapper.selectList(queryWrapper);
在这个例子中,我们首先创建了一个 QueryWrapper 对象,并使用 lambda 表达式设置了一个等值条件 eq(User::getStatus, 1)
,表示查询状态为 1 的用户。
然后,通过 apply 方法应用了一个自定义的 SQL 片段 "date_format(create_time,'%Y-%m-%d') = {0}"
,其中 {0}
表示占位符,用于接收后面传入的参数。这个 SQL 片段的作用是筛选出 create_time 字段为指定日期的数据。
最后,我们使用 QueryWrapper 对象进行查询,将查询结果赋给 userList 变量。
通过使用 apply 方法,我们可以在 QueryWrapper 中通过自定义 SQL 片段实现更复杂的查询条件。注意,在使用 apply 方法时,需要对 SQL 片段进行安全处理,以避免 SQL 注入的风险。
相关推荐
















