这样查询条件即为传入实体中的属性值。
若查询条件需要模糊查询,可在实体字段上加注解:@TableFiled(condition=SqlCondition.LIKE) 表示该字段使用模糊查询

若查询条件要求不等值,可在实体字段上加注解:例如在age上加注解@TableFiled(condition="%s<#{%s}"),表示age<#{age}

使用实体作为条件构造器构造方法的参数
使用@TableField(condition = SqlCondition.LIKE) 表示该字段对应SQL语句是LIKE
如果SqlCondition里面没有对应的SQL语句则可自定义
@TableField(condition = "%s<#{%s}") // 第一个%s对应字段名, < 表示小于,#{%s} 对应输入的值

使用的时候 QueryWrapper构造传入对象与 queryWrapper添加条件都会添加到where中

传入对象可以在entity中添加condition


第一种条件构造
@TableField(condition=SqlCondition.*)
用于属性条件构造
如果是时间参数:
@TableField(condition="%s<#{%s}")

第一种查询方式
实体传入QueryWrapper作为条件
如果需要like,lt等, 可以用TableField(condition="%s<#{%s}")等来使用。
实体作为条件构造方法的参数,实体字段默认为等于,如果不想等于的做法。
实体作为条件构造方法的参数
@TableField(condition=SqlCondition.LIKE)
创建条件构造器时传入实体对象

QueryWrapper一个参数的构造方法,如果传入一个部不为null的对象,默认会进行进行等值比较,也就是where后拼接条件。
注意:通过entity参数生成的等值和QueryWrapper的条件构造方法生成的没有任何关系。

举例验证:


注意:使用时要慎重,因为他们都会在sql中进行拼接。
使用场景:如果允许使用实体类去接受参数,那么就可以不用调用条件构造器,而是直接使用构造方法传入参数即可。
特殊操作:可以通过在实体类上添加注解,指定该属性使用那种操作,默认使用等值。
SqlCondition类:定义了一些常量,包括等值、不等于、like、左边like、右边like。

如果提供的常量无法满足需求,就可以自己在注解中编写常量表达式,例如小于。

实体对象作为条件构造器方法的参数
例:
User user1 = new User();
user1.setName("张三");
user1.setAge(25);
QueryWrapper<User> queryWrapper = new QueryWrapper<User>(user1);
List<User> userlist = userMapper.selectList(queryWrapper);
这样查询条件即为传入实体中的属性值。
若查询条件需要模糊查询,可在实体字段上加注解:@TableFiled(condition=SqlCondition.LIKE) 表示该字段使用模糊查询
若查询条件要求不等值,可在实体字段上加注解:例如在age上加注解@TableFiled(condition="%s<#{%s}"),表示age<#{age}
实体类条件选择,源码对照
年龄小于的注入
实体对象中设置名字的模糊查询
实体作为参数,1
condition自己手写
不想设定等值搜索,将这里设定注解 condition.
where 查询 根据entity new user 设定关键字段查询
也可以理解为 前端传入的搜索参数 但是没有like操作
标签一下看到的位置