对于 oracle 数据库,我们的表通常会创建唯一索引。
不过有时候因为并发等问题,重复插入失败是很正常的,我们希望捕获掉对应的异常,输出 warn 级别的日志即可。
实际使用的 mybatis-plus 作为数据库操作框架,记录一下一些小问题。
单个插入的重复
这个比较符合预期,实现如下:
try {
userService.insert(user);
} catch (DuplicateKeyException exception) {
logger.warn("插入重复,插入失败。", exception);
}