Mybatis 批量更新

方式一:case when then....



  UPDATE sys_region_continents
  SET C_NAME_PINYIN =
  
    WHEN #{item.id} THEN #{item.pinyin}
  
  WHERE ID IN
  
    #{item.id,jdbcType=BIGINT}
  

方式二:insert into ... on duplicate key update

如果列不能为空或者没有默认值也许会报错:Field XXX doesn't have a default value,



  INSERT INTO sys_region(ID,C_NAME_PINYIN) VALUES
  
    (#{item.id},#{item.pinyin})
  
  ON DUPLICATE KEY UPDATE
  ID = VALUES(ID),
  C_NAME_PINYIN = VALUES(C_NAME_PINYIN)

方式三:replace into

这种方式只有替换的字段(示例中ID,C_NAME_PINYIN)有值,其余都会被清空掉



  REPLACE INTO sys_region_continents(ID,C_NAME_PINYIN) VALUES
  
    (#{item.id},#{item.pinyin})
  

你可能感兴趣的:(Mybatis 批量更新)