mybatis 在批量插入的时候,ON DUPLICATE KEY UPDATE作用 是 如果信息已经存在,则更新。做到数据的唯一性,去重。使用的时候,表数据创建 唯一索引。
UNIQUE KEY `un_import_time_exchange_table` (`import_time`,`exchange_name`,`mark_type`,`data_type`,`table_name`)
insert into data_import_info () values ( #{item.importTime}, #{item.exchangeName}, #{item.markType},#{item.dataType},#{item.tableName}, #{item.importCodeNumber},#{item.importedNumber},#{item.gmtCreate} ) ON DUPLICATE KEY UPDATE import_time=VALUES(import_time), exchange_name=VALUES(exchange_name), mark_type=VALUES(mark_type), data_type=VALUES(data_type), `table_name`=VALUES(`table_name`)
注意:这里的 ON DUPLICATE KEY UPDATE 后的 左右字段均是 库表里的字段,不是实体字段。
如果主键为自动增长列的话就得另外想办法,可以选择首先判断主键是否存在,如果存在则是修改语句.建议如果用了自动增加的情况最好不要用这个语句,可以选择在java端判断执行不同的sql



