update mc_tax_apply set rejected_time = null,remark = null where apply_id = 用MyBatisPlus怎么写
时间: 2024-03-26 08:41:37 浏览: 92
Mybatis Plus 字段为空值时执行更新方法未更新解决方案
使用 MyBatisPlus 进行更新操作可以通过以下步骤实现:
1. 定义实体类
首先需要定义实体类 `McTaxApply`,该类需要继承 `Model` 类,并且定义实体类的属性对应数据库表的字段。
```java
public class McTaxApply extends Model<McTaxApply> {
private Long applyId;
private Date rejectedTime;
private String remark;
// 省略 getter 和 setter 方法
}
```
2. 定义 Mapper 接口
接下来需要定义 Mapper 接口 `McTaxApplyMapper`,该接口需要继承 `BaseMapper` 接口,并且定义更新操作的方法。
```java
public interface McTaxApplyMapper extends BaseMapper<McTaxApply> {
int updateRejectedTimeAndRemarkById(@Param("applyId") Long applyId,
@Param("rejectedTime") Date rejectedTime,
@Param("remark") String remark);
}
```
其中 `@Param` 注解用于指定参数名称,方便在 SQL 语句中使用。
3. 定义 SQL 语句
在 XML 文件中定义 SQL 语句,该语句需要使用 MyBatisPlus 提供的 `UpdateWrapper` 来进行更新操作。
```xml
<update id="updateRejectedTimeAndRemarkById">
update mc_tax_apply
<set>
<if test="rejectedTime != null">
rejected_time = #{rejectedTime,jdbcType=TIMESTAMP},
</if>
<if test="remark != null">
remark = #{remark,jdbcType=VARCHAR},
</if>
</set>
where apply_id = #{applyId,jdbcType=BIGINT}
</update>
```
4. 调用更新方法
在代码中调用更新方法,实现更新操作。
```java
McTaxApply mcTaxApply = new McTaxApply();
mcTaxApply.setApplyId(1L);
mcTaxApply.setRejectedTime(null);
mcTaxApply.setRemark(null);
McTaxApplyMapper mcTaxApplyMapper = sqlSession.getMapper(McTaxApplyMapper.class);
int result = mcTaxApplyMapper.update(mcTaxApply, new UpdateWrapper<McTaxApply>()
.eq("apply_id", mcTaxApply.getApplyId())
.set("rejected_time", mcTaxApply.getRejectedTime())
.set("remark", mcTaxApply.getRemark()));
```
以上代码中,我们首先创建了一个 `McTaxApply` 对象,并设置了需要更新的字段。然后通过 `SqlSession` 获取 `McTaxApplyMapper` 接口的实现类,并调用更新方法。在更新方法中,我们使用 `UpdateWrapper` 来构造更新条件和更新字段,并通过 `eq` 方法指定更新条件为 `apply_id = ?`。最后执行更新操作,并返回更新结果。
阅读全文