我在Mysql Server5.5的服务器端使用tomcat。
我使用Spring框架实现数据库连接。
我希望能够使用simpleJdbcInsert向表中插入一行。如果由于重复而导致插入失败,我希望它替换重复的行。
有没有办法做到这一点,或者我应该只使用jdbcTemplate,并使用"ON simpleJdbcInsert“语句创建我的on查询?
谢谢
发布于 2012-03-06 20:08:53
从逻辑上讲,当存在双重主键时,就会发生重复。
因此,如果您正在使用传统的JDBC甚至Hibernate,那么在插入新的主键值之前,您应该检查是否已经存在相同的主键值。
但是,如果主键还没有设置,或者将由DBMS设置,则会出现不同的问题。
在JDBC中的
发布于 2021-01-25 20:30:05
,同样,您需要在插入新样式之前通过查询进行旧样式的手动检查,但是
这是不正确的-因为检查现有行和实际插入之间存在时间间隔,所以并行线程中的某些人可以同时插入具有相同键的行,您将获得DuplicateKeyException (如果我们讨论spring)。因此,您必须处理此异常,或者只使用诚实的SQL insert into ... on duplicate key ...。
https://stackoverflow.com/questions/9583097
复制相似问题