MyBatis Plus实现注解式插入或更新

场景

在进行数据插入时,需要根据唯一索引(有时是联合索引,联合索引确定唯一一条记录)进行插入数据,当有更新的数据到来时,能及时更新已保存的记录数据;以往的经验是,根据唯一索引,先查询一下,是否有该条记录,如果有,更新指定字段值后,再进行一次updateById操作,以下介绍一种insertOrUpdate方式,实现插入或更新功能,即当新插入的数据已存在时,进行指定字段更新操作。

实现

import cn.keyidea.pre.entity.HotspotTaskStatus;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 

* 任务状态变更表 Mapper 接口 *

* * @author qyd * @since 2022-09-17 */ @Mapper public interface HotspotTaskStatusMapper extends BaseMapper { /** * 插入或更新任务状态信息 * key值:task_name,status(需要在数据库中将这两进行唯一索引) * * @param entity 待插入的实体 * @return 返回结果 */ @Insert("") int insertOrUpdate(@Param("entity") HotspotTaskStatus entity); }

说明

  • 由于是根据唯一索引进行确定唯一记录,所以on duplicate key update之后需要写上索引字段值,如果存在多个,逗号隔开即可
  • 在insert into 表名之后的括号内,需要写明字段列表(指定字段插入或更新字段)

你可能感兴趣的:(MyBatis Plus实现注解式插入或更新)