赞
踩
提示:以下是本篇文章正文内容,下面案例可供参考
| 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。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。