首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

利用Ibatis兑现Mysql中的不重复插入记录

2012-10-20 
利用Ibatis实现Mysql中的不重复插入记录以下讨论全部针对Mysql数据库:)?通常业务上至少需要两种类型的不重

利用Ibatis实现Mysql中的不重复插入记录

以下讨论全部针对Mysql数据库:)

?

通常业务上至少需要两种类型的不重复插入记录的需求:

?

如果某些关键字段已经在Mysql中存在了,不要重复插入,而是改为更新某些字段。如果某些关键字段已经在Mysql中存在了,不要重复插入,也不需要做更新操作,直接忽略即可。

1、针对上面的第一种,mysql提供了insert into ... on duplicate key update ... 语法(Mysql自己的语法,不属于标准SQL)来实现。这种场景相对常见。使用的前提是,需要定义主键或者唯一性索引,用来告诉Mysql哪些字段的重复会造成主键冲突或者违背唯一性约束条件。当这些情况出现时,就放弃insert操作,转而执行后面的update操作。上一个具体的例子,在ibatis中写的一个上面逻辑的sql:

?

?通过上面语句进行插入操作之后,可以通过如下方式在Java代码中获得这个DB自增产生的ID:
通过上面语句进行插入操作之后,可以通过如下方式在Java代码中获得insert真正影响到的行数:
Integer affectedRows = (Integer)sqlMapClient.update("testInsertIgnore", param);
?

热点排行