在Java/MyBATIS中插入重复行时检测
我目前正在我的项目中使用MyBATIS 有时,我需要运行INSERT查询,但如果我试图插入的行已经存在于数据库中,则忽略它,而是处理其他SQL错误 如何发现SQLException与主键冲突相关 差不多在Java/MyBATIS中插入重复行时检测,java,sql,ibatis,Java,Sql,Ibatis,我目前正在我的项目中使用MyBATIS 有时,我需要运行INSERT查询,但如果我试图插入的行已经存在于数据库中,则忽略它,而是处理其他SQL错误 如何发现SQLException与主键冲突相关 差不多 try { sqlMap.insert(query, params); } catch (DuplicateKeyException ex) { //Do nothing, it's OK for mew } catch (SQLException ex) { throw
try {
sqlMap.insert(query, params);
} catch (DuplicateKeyException ex) {
//Do nothing, it's OK for mew
} catch (SQLException ex) {
throw ex;
}
我想特定的异常实际上并不存在…SQL不是我的强项,但您可以查看将抛出的SQLException中包含的错误代码和SQL状态代码。这些可以让我们更深入地了解查询失败的原因。下面的页面将在Oracle的DB2上下文中解释这两者。我想我不知道它们是否标准化(我怀疑部分或根本不标准)。但如果您暂时不打算更改DBs,这可能会起作用。。。