Java Mysql完整性约束冲突异常
我的Swing应用程序很少抛出异常。我试图捕获完整性约束冲突异常并显示消息“重复ID”。但是当发生这种情况时,没有在这里捕获它:catch(MySQLIntegrityConstraintViolationException-ex),它会转到catch(SQLException-ex)。我想做的是,捕获完整性冲突异常并显示用户友好的消息,而不是来自ex.getMessage()的技术消息。我该怎么做Java Mysql完整性约束冲突异常,mysql,swing,exception,constraints,unique-constraint,Mysql,Swing,Exception,Constraints,Unique Constraint,我的Swing应用程序很少抛出异常。我试图捕获完整性约束冲突异常并显示消息“重复ID”。但是当发生这种情况时,没有在这里捕获它:catch(MySQLIntegrityConstraintViolationException-ex),它会转到catch(SQLException-ex)。我想做的是,捕获完整性冲突异常并显示用户友好的消息,而不是来自ex.getMessage()的技术消息。我该怎么做 ShippmentTransfer shipTrns = new S
ShippmentTransfer shipTrns = new ShippmentTransfer(shipID, GIN, issueDate, ToStore, itemName, Qty, Driver, Vehicle);
int res = ShipmentTansController.addShipGIN(shipTrns);
if (res > 0) {
JOptionPane.showMessageDialog(null, "Record Added");
resetAll();
}
} catch (DataIntegrityViolationException ex) {
JOptionPane.showMessageDialog(null, "Duplicate ID");
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex.gets);
}
}
你不能使用
MySQLIntegrityConstraintViolationException directly.
因为java中没有使用该名称的异常
试试这个
try {
}
catch (DataIntegrityViolationException ex) {
.....
}
然后使用ex获取错误代码。然后将其进行比较您不能使用
MySQLIntegrityConstraintViolationException directly.
因为java中没有使用该名称的异常
试试这个
try {
}
catch (DataIntegrityViolationException ex) {
.....
}
然后使用ex获取错误代码。然后比较它为了捕获特定的SQLException,需要使用getSQLState()方法与SQl状态进行比较。例如:数据完整性冲突的SQl状态23
catch (SQLException ex) {
if (ex.getSQLState().startsWith("23")) {
JOptionPane.showMessageDialog(null, "Duplicate");
}
}
为了捕获特定的SQLException,需要使用getSQLState()方法与SQl状态进行比较。例如:数据完整性冲突的SQl状态23
catch (SQLException ex) {
if (ex.getSQLState().startsWith("23")) {
JOptionPane.showMessageDialog(null, "Duplicate");
}
}
对于以后的检查,
您可以选择将实例类型检查为:
try {
...
} catch (Exception e) {
if (e instanceof SQLIntegrityConstraintViolationException) {
// duplicate record or alike problem
}
}
对于稍后检查的人,
您可以选择将实例类型检查为:
try {
...
} catch (Exception e) {
if (e instanceof SQLIntegrityConstraintViolationException) {
// duplicate record or alike problem
}
}
谢谢你的回复。那么如何捕获完整性约束冲突异常?你有什么想法吗?尝试使用ex获取异常的名称。然后在引发异常时使用comparetry调试ex。当IntegrityVoilationException引发和其他引发时它包含什么。确定。我会试着用那种方法。最后我设法解决了。我使用方法getSQLState()生成特定的错误代码。例23:数据完整性违规。if(例如getSQLState().startsWith(“23”)){无论如何,我感谢你的努力帮助我。谢谢你的回复。那么我如何捕获完整性约束冲突异常?你有什么想法吗?尝试使用ex获取异常的名称。然后在引发异常时使用comparetry调试ex。当IntegrityVoilationException引发和其他引发异常时它包含什么。当然。我会尝试我使用方法getSQLState()生成特定的错误代码。例如,数据完整性冲突。如果(例如,getSQLState().startsWith(“23”){无论如何,我感谢您的帮助。