MyBatis-plus

提示:MyBatis-Plus简介

文章目录


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中的一个功能,它可以更方便地构建查询条件。

这段代码的主要步骤如下:

  1. 创建一个QueryWrapper对象(qw),并为它指定一个类型,即User。
  2. 使用eq()方法设置一个等于条件,即"username"字段的值必须等于"Tom"。
  3. 使用like()方法设置一个模糊匹配条件,即"email"字段的值必须包含"qq.com"这个子串。
  4. 使用gt()方法设置一个大于条件,即"age"字段的值必须大于30。
  5. 使用这些查询条件,调用userMapper的selectList()方法执行查询,获取满足条件的User对象列表。
  6. 遍历查询结果,将每个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。
相关推荐
skywalker_115 天前
SpringBoot速通(实战教学)
java·spring boot·redis·rpc·ssm·mybatis-plus
段ヤシ.18 天前
回顾Java知识点,面试题汇总Day17(持续更新)
java·springboot·spring security·shiro·mybatis-plus·jdbctemplate·spring data jpa
Mahir0819 天前
MyBatis 分页与插件深度解密:从插件机制到三大分页方案原理全解
java·后端·mybatis·mybatis-plus·大厂面试题
谷哥的小弟19 天前
图文详解Spring Boot整合MyBatisPlus(附源码)
mybatis·源码·springboot·mybatis-plus·整合
递归尽头是星辰2 个月前
Java类型安全查询框架体系:QueryDSL、Ebean、jOOQ、MyBatis-Plus
mybatis-plus·querydsl·ebean·jooq·动态 sql
稻草猫.3 个月前
MyBatis-Plus高效开发全攻略
java·数据库·后端·spring·java-ee·mybatis·mybatis-plus
为美好的生活献上中指3 个月前
*Java 沉淀重走长征路*之——《MyBatis与MyBatis-Plus一文打尽!》
java·jvm·maven·mybatis·mybatis-plus
Sun 32853 个月前
MyBatis-Plus 新版代码生成器的使用
java·spring boot·后端·spring·配置·mybatis-plus·代码生成器
ruleslol4 个月前
MyBatis-Plus11:枚举处理器
mybatis-plus
ruleslol4 个月前
MyBatis-Plus12:JSON处理器
mybatis-plus