MySQL的添加或修改
mysql的添加更新,根据索引重复或主键重复
如果数据库没有相应的数据添加,否则修改。这就是on duplicate key update的作用
ON DUPLICATE KEY UPDATE
添加或修改一条
<insert id="方法名" parameterType="返回类型">
insert into 表名 (字段1, 字段2, ······,
字段3)
values (#{实体类属性1,jdbcType=数据库对应的类型},
#{实体类属性2,jdbcType=数据库对应的类型},
#{······,jdbcType=数据库对应的类型},
#{实体类属性3,jdbcType=数据库对应的类型})
on duplicate key update
字段1=#{实体类属性1,jdbcType=数据库对应的类型},
字段2=#{实体类属性2,jdbcType=数据库对应的类型},
·····=#{countryName,jdbcType=数据库对应的类型},
字段3=#{实体类属性3···,jdbcType=数据库对应的类型}
</insert>
添加或修改多条
<insert id="方法名" parameterType="java.util.List">
insert into 表名 (字段1, 字段2, ······,
字段3)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.实体类属性1,jdbcType=数据库对应的类型},
#{item.实体类属性2,jdbcType=数据库对应的类型},
#{······,jdbcType=数据库对应的类型},
#{item.实体类属性3,jdbcType=数据库对应的类型})
</foreach>
ON DUPLICATE KEY UPDATE
字段1=values(字段1),
字段2=values(字段2),
······=values(字段··),
字段3=values(字段3)
</insert>
注意:数据库如果有自动更新时间字段,它是不生效的,因为数据库按照添加的方式,是不会自动更新时间,需要在更新后添加
字段=now()
,给出最后更新时间。now()是当前时间