queryWrapper 中set
时间: 2023-07-15 08:15:11 浏览: 259
queryWrapper 中的 set 方法是用于设置要更新的字段和值的。它的语法如下:
```java
public <V> LambdaUpdateWrapper<T> set(FieldInfo field, V val)
```
其中,参数 field 是要更新的字段,参数 val 是要设置的值。使用该方法可以快速地设置多个字段的值,例如:
```java
queryWrapper.set("name", "张三").set("age", 20);
```
上述代码表示设置 name 字段的值为 "张三",age 字段的值为 20。需要注意的是,set 方法只是设置了要更新的字段和值,并没有执行更新操作。更新操作需要在执行 update 方法时进行。
相关问题
queryWrapper的set方法
queryWrapper的set方法是用于设置需要更新的字段和值的方法,它有多个重载形式。其中一种常用的形式是:
```
public Wrapper<T> set(String column, Object value)
```
该方法用于设置单个字段的值,其中column为字段名,value为要设置的值。例如:
```
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", 1L);
queryWrapper.set("name", "Jack");
userMapper.update(null, queryWrapper);
```
这段代码的作用是:将id为1的用户的name字段更新为"Jack"。
除了单个字段的设置,还有一种常用的形式是批量设置多个字段的值,例如:
```
public Wrapper<T> setSql(String sql)
```
该方法用于通过SQL语句设置多个字段的值,例如:
```
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", 1L);
queryWrapper.setSql("age = age + 1, update_time = now()");
userMapper.update(null, queryWrapper);
```
这段代码的作用是:将id为1的用户的age字段加1,update_time字段更新为当前时间。
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); QueryWrapper queryWrapper = new QueryWrapper<Buffet>() .eq("code",buffet.getCode()); List<Buffet> list = buffetMapper.selectList(queryWrapper); if (ObjectUtils.isEmpty(list)) { throw new ServiceException("取餐码错误,请重新输入取餐码"); } QueryWrapper queryWrapper2 = new QueryWrapper<Buffet>() .eq("code",buffet.getCode()); Buffet buffet1 = buffetMapper.selectOne(queryWrapper2); QueryWrapper queryWrapper3 = new QueryWrapper<Buffet>() .eq("order_no",buffet1.getOrderNo()); BuffetLog buffetLog = buffetLogMapper.selectOne(queryWrapper3); buffetLog.setOuttime(new Date()); // buffetLog.setOutuser(user.getId()); DdOrder ddOrder = ddOrderMapper.selectById(buffet1.getOrderNo()); if (!ddOrder.getStatus().equals("6")){ throw new ServiceException("请等待配送完成后再取餐!!!"); } ddOrder.setStatus("7"); ddOrderMapper.updateById(ddOrder); buffetLogMapper.updateById(buffetLog); for (Buffet buffet2 : list) { buffet2.setStatus("0"); buffet2.setCode(""); buffet2.setOrderNo(""); this.updateById(buffet2); } return null; }
这是一个 Java 代码块,其中包含了对自助餐的取餐操作的处理逻辑。主要流程如下:
1. 从前端传来的参数中获取自助餐的取餐码;
2. 根据取餐码从数据库中查询自助餐的信息,如果查询不到,则抛出异常;
3. 根据查询到的自助餐信息,获取对应的订单号,并查询该订单的状态,如果订单状态不为已完成,则抛出异常;
4. 更新订单状态为已取餐;
5. 更新自助餐日志信息,记录取餐时间;
6. 更新自助餐信息,将自助餐状态改为可用状态,清空取餐码和订单号。
需要注意的是,这段代码中还有一行被注释掉的代码:`// buffetLog.setOutuser(user.getId());`,该代码用于记录取餐用户的 ID,可以根据需要取消注释。
阅读全文