捕获重复条目异常
2022-09-01 07:32:29
我怎么能抓住这个例外:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
Duplicate entry '22-85' for key 'ID_CONTACT'
我怎么能抓住这个例外:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
Duplicate entry '22-85' for key 'ID_CONTACT'
我使用弹簧,所以我们通过以下方式解决它org.springframework.dao.DataIntegrityViolationException
try {
ao_history_repository.save(new AoHistory(..));
} catch (DataIntegrityViolationException e) {
System.out.println("history already exist");
}
但正如@KevinGuancheDarias提到的那样:
请注意,虽然这有效。我建议通过在保存之前发布一个findBy来解决问题,因为这是混乱的,而且我认为不能保证它将在将来的版本中工作,甚至可能在没有通知的情况下中断。
catch SQLIntegrityConstraintViolationException,如果您使用的是 Java 1.6+
例如:
try {
ps.executeUpdate("INSERT INTO ...");
} catch (SQLIntegrityConstraintViolationException e) {
// Duplicate entry
} catch (SQLException e) {
// Other SQL Exception
}
或
try {
ps.executeUpdate("INSERT INTO ...");
} catch (SQLException e) {
if (e instanceof SQLIntegrityConstraintViolationException) {
// Duplicate entry
} else {
// Other SQL Exception
}
}