update tb_item set stock=stock-#{num} where id=#{itemId} 使用mybaitisplus完成sql
时间: 2024-03-18 18:40:34 浏览: 199
可以使用 MyBatis-Plus 提供的 `UpdateWrapper` 来构造 `UPDATE` 语句,具体实现如下:
```java
UpdateWrapper<Item> updateWrapper = new UpdateWrapper<>();
updateWrapper.setSql("stock = stock - " + num)
.eq("id", itemId);
int rows = itemMapper.update(null, updateWrapper);
```
其中,`Item` 是实体类,`itemMapper` 是 MyBatis 的 Mapper 接口,`num` 和 `itemId` 分别表示要更新的数量和商品 ID。
这里使用 `setSql` 方法设置更新语句的具体内容,使用 `eq` 方法指定更新条件,最后调用 `update` 方法执行更新操作。如果更新成功,返回值 `rows` 会返回受影响的行数。
相关问题
update tb_item set stock=stock-#{num} where id=#{itemId} 使用mybaitisplus完成
可以使用 MyBatis-Plus 提供的 `UpdateWrapper` 来构造 `UPDATE` 语句,具体实现如下:
```java
UpdateWrapper<Item> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("stock", SqlUtils.formatSql("{0} - {1}", "stock", num))
.eq("id", itemId);
int rows = itemMapper.update(null, updateWrapper);
```
其中,`Item` 是实体类,`itemMapper` 是 MyBatis 的 Mapper 接口,`num` 和 `itemId` 分别表示要更新的数量和商品 ID。
这里使用 `set` 方法设置要更新的字段及其值,注意需要使用 `SqlUtils.formatSql` 方法来格式化 SQL 字符串,以防止 SQL 注入攻击。使用 `eq` 方法指定更新条件,最后调用 `update` 方法执行更新操作。如果更新成功,返回值 `rows` 会返回受影响的行数。
阅读全文