文章目录
QueryWrapper
提示:以下是本篇文章正文内容,下面案例可供参考
| QueryWrapper对象方法 | 描述 | 
|---|---|
| eq | 等于 = | 
| ne | 不等于 <> | 
| gt | 大于 > | 
| ge | 大于等于 >= | 
| lt | 小于 < | 
| le | 小于等于 <= | 
| between | BETWEEN 值1 AND 值2(例: between("date", "2022-01-01", "2022-12-31")) | 
| like | LIKE '%值%' | 
| isNull | 字段 IS NULL | 
| in | 字段 IN (例:in("color", {"red", "blue", "green"})) | 
| orderBy | 排序(例:orderBy(false, false, "price", "weight"))【先按照"price"降序排列,如果"price"相同,则按照"weight"升序排列】 | 
用法
            
            
              java
              
              
            
          
          @Test  
public void testQueryWrapperExample() {  
    QueryWrapper<User> qw = new QueryWrapper<>();  
    qw.eq("username", "Tom");  
    qw.like("email", "qq.com");  
    qw.gt("age", 30);  
      
    // 多条件查询  
    List<User> userList = userMapper.selectList(qw);  
    for (User user : userList) {  
        System.out.println(user);  
    }  
      
    // 多条件更新  
    // int result = userMapper.update(new User(null, "newName", "newEmail"), qw);  
    // 多条件删除  
    // int result = userMapper.delete(qw);  
}
        这段代码是一个Java测试方法,它使用QueryWrapper来构建并执行一个查询。QueryWrapper是MyBatis Plus中的一个功能,它可以更方便地构建查询条件。
这段代码的主要步骤如下:
- 创建一个QueryWrapper对象(qw),并为它指定一个类型,即User。
 - 使用
eq()方法设置一个等于条件,即"username"字段的值必须等于"Tom"。 - 使用
like()方法设置一个模糊匹配条件,即"email"字段的值必须包含"qq.com"这个子串。 - 使用
gt()方法设置一个大于条件,即"age"字段的值必须大于30。 - 使用这些查询条件,调用userMapper的selectList()方法执行查询,获取满足条件的User对象列表。
 - 遍历查询结果,将每个User对象打印出来。
 
这个代码中还有两行注释掉的代码,它们分别用于多条件更新和多条件删除操作。在这两个操作中,QueryWrapper同样被用来构建查询条件。
在这个例子中,使用了QueryWrapper来构建一个查询条件,该条件包括用户名等于"Tom",邮箱包含"qq.com",并且年龄大于30。然后使用这个查询条件调用userMapper的selectList()方法执行查询,获取满足条件的User对象列表。最后遍历查询结果,将每个User对象打印出来。注释的两行代码分别用于多条件更新和多条件删除操作。
UpdateWrapper
UpdateWrapper用于update时非常方便,因为它封装了set方法,可以将更新数据使用set方法传入。这样在更新时只需传入一个UpdateWrapper对象即可。
| UpdateWrapper对象方法 | 用法 | 
|---|---|
| set | 用于设置要更新的字段和对应的值 | 
| gt | 用于设置大于条件 | 
| lt | 用于设置小于条件 | 
| like | 用于设置模糊匹配条件 | 
用法
            
            
              java
              
              
            
          
          @Test
public void testUpdateWrapper() {
//创建一个UpdateWrapper对象,用于构建更新操作的查询条件。
UpdateWrapper uw = new UpdateWrapper();
//字段是"name",值是"Tom"。
uw.set("name", "Tom");
//使用set方法设置另一个字段"age"的值为35。
uw.set("age", 35);
//使用gt方法设置一个大于条件,即"salary"字段的值必须大于3000。
uw.gt("salary", 3000);
//使用lt方法设置一个小于条件,即"salary"字段的值必须小于10000。
uw.lt("salary", 10000);
//使用like方法设置一个模糊匹配条件,即"name"字段的值必须以"T"开头。
uw.like("name", "T%");
int result = employeeMapper.update(null, uw);
System.out.println(result);
}
        使用uw.set("","")的方式添加更新数据,这样在deptMapper.update(null, uw);中只需要传递一个uw即可。
生成的SQL语句如下:
            
            
              sql
              
              
            
          
          UPDATE employee SET name=?,age=? WHERE (salary > ? AND salary < ? AND name LIKE ?)
#这个SQL语句表示在"employee"表中选择那些"salary"字段的值在3000和10000之间并且"name"字段以"T"开头的记录,并将它们的"name"和"age"字段更新为新的值。在更新操作中,"name"字段将被设置为"Tom","age"字段将被设置为35。