提示:MyBatis-Plus简介
提示:以下是本篇文章正文内容,下面案例可供参考
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”升序排列】 |
@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中的一个功能,它可以更方便地构建查询条件。
这段代码的主要步骤如下:
eq()
方法设置一个等于条件,即"username"字段的值必须等于"Tom"。like()
方法设置一个模糊匹配条件,即"email"字段的值必须包含"qq.com"这个子串。gt()
方法设置一个大于条件,即"age"字段的值必须大于30。这个代码中还有两行注释掉的代码,它们分别用于多条件更新和多条件删除操作。在这两个操作中,QueryWrapper同样被用来构建查询条件。
在这个例子中,使用了QueryWrapper来构建一个查询条件,该条件包括用户名等于"Tom",邮箱包含"qq.com",并且年龄大于30。然后使用这个查询条件调用userMapper的selectList()
方法执行查询,获取满足条件的User对象列表。最后遍历查询结果,将每个User对象打印出来。注释的两行代码分别用于多条件更新和多条件删除操作。
UpdateWrapper用于update时非常方便,因为它封装了set方法,可以将更新数据使用set方法传入。这样在更新时只需传入一个UpdateWrapper对象即可。
UpdateWrapper对象方法 | 用法 |
---|---|
set | 用于设置要更新的字段和对应的值 |
gt | 用于设置大于条件 |
lt | 用于设置小于条件 |
like | 用于设置模糊匹配条件 |
@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语句如下:
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。