QueryWrapper notInSql
时间: 2024-08-14 15:02:20 浏览: 54
QueryWrapper是MyBatis Plus中的一种高级SQL构建工具,它提供了一种更简洁、更易读的方式来编写动态SQL查询语句,尤其适用于复杂的条件组合。`notInSql`方法用于生成一个"不在集合中"的SQL查询条件,其基本语法是在给定的字段名后加上`.notInSql()`,然后传入一个包含逗号分隔值的列表或者子查询结果。
例如:
```java
List<User> users = UserMapper.selectList(new QueryWrapper<User>().eq("id", 1).notInSql("status", "[0, 2]"));
```
这将返回所有状态ID不等于0和2的用户。如果你有一个预编译的子查询,也可以这样使用:
```java
List<User> users = UserMapper.selectList(new QueryWrapper<User>().eq("id", 1).notInSql("status", "(SELECT status FROM other_table WHERE ...)");
```
相关问题
QueryWrapper queryWrapper = new QueryWrapper<Urolfuser2>() QueryWrapper<Urolfuser2> queryWrapper = new QueryWrapper<>()区别
QueryWrapper queryWrapper = new QueryWrapper<Urolfuser2>() 和 QueryWrapper<Urolfuser2> queryWrapper = new QueryWrapper<>() 的区别在于泛型的位置不同。
1. QueryWrapper queryWrapper = new QueryWrapper<Urolfuser2>():
这种写法将泛型 Urolfuser2 直接放在了 QueryWrapper 类的尖括号内,表示创建一个 QueryWrapper 对象,并指定其泛型类型为 Urolfuser2。这种写法在 Java 7 之前是必须的,因为 Java 7 之前的版本不支持类型推断。
2. QueryWrapper<Urolfuser2> queryWrapper = new QueryWrapper<>():
这种写法使用了类型推断,省略了泛型类型 Urolfuser2 的指定。编译器会根据变量的声明类型 QueryWrapper<Urolfuser2> 推断出泛型类型为 Urolfuser2。这种写法在 Java 7 及以后的版本中支持。
总结:
两种写法的功能是相同的,都是创建一个 QueryWrapper 对象,并指定其泛型类型为 Urolfuser2。只是第二种写法利用了类型推断,使代码更加简洁。
QueryWrapper wrapper = new QueryWrapper<>();与QueryWrapper wrapper = new QueryWrapper();的区别
这两种写法本质上是相同的,都是创建一个空的QueryWrapper对象。只不过在Java 7及以下版本中,需要在尖括号中重复写一遍泛型类型,而在Java 8及以上版本中,可以使用“菱形语法”(diamond syntax)来省略重复写泛型类型。因此,QueryWrapper wrapper = new QueryWrapper<>();是Java 8及以上版本的写法,而QueryWrapper wrapper = new QueryWrapper();是Java 7及以下版本的写法。
阅读全文