mybatis 用queryWrapper.apply执行自定义sql
时间: 2023-11-06 17:07:02 浏览: 177
MyBatisPlus 自定义sql语句的实现
`queryWrapper.apply` 方法用于将自定义 SQL 语句拼接到查询条件中,可以实现更加灵活的查询操作。
例如,假设我们有一个自定义 SQL 语句:
```sql
SELECT * FROM user WHERE age > 20 AND name LIKE '%Jack%'
```
我们可以使用 `queryWrapper.apply` 方法将这个自定义 SQL 语句拼接到查询条件中:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 20);
queryWrapper.like("name", "Jack");
queryWrapper.apply("AND age > 20 AND name LIKE '%Jack%'");
List<User> userList = userMapper.selectList(queryWrapper);
```
在上面的例子中,我们先使用 `queryWrapper.gt` 方法设置了查询条件 `age > 20` 和 `queryWrapper.like` 方法设置了查询条件 `name LIKE '%Jack%'`,然后使用 `queryWrapper.apply` 方法将自定义 SQL 语句 `AND age > 20 AND name LIKE '%Jack%'` 拼接到查询条件中。
最后,我们调用 `userMapper.selectList` 方法执行查询操作,得到符合条件的用户列表。
需要注意的是,`queryWrapper.apply` 方法拼接的 SQL 语句需要符合 SQL 规范,否则会导致 SQL 执行错误。同时,为了防止 SQL 注入攻击,应该尽量避免在自定义 SQL 语句中使用动态参数,而应该使用参数占位符 `?`。
阅读全文