長時間搜索此問題的解決方案,但仍然無法獲得此答案,我試圖在我的應用程序中使用JAVA製作搜索框。如何捕獲數據的SQLException? (例如,數據不存在)
我想從數據庫中捕捉異常並告訴用戶該列不存在或重複數據,我可以知道我該怎麼做?
長時間搜索此問題的解決方案,但仍然無法獲得此答案,我試圖在我的應用程序中使用JAVA製作搜索框。如何捕獲數據的SQLException? (例如,數據不存在)
我想從數據庫中捕捉異常並告訴用戶該列不存在或重複數據,我可以知道我該怎麼做?
這是不是一個真正的容易做到的事情和解決方案將取決於很多的SQL連接(即,MySQL和甲骨文等)
我展示的供應商做到這一點使用模式的一種方式SQLException的錯誤信息
private final int INEXISTENT_COLUMN_ERROR = ?
private final int DUPLICATE_DATA_ERROR = ?
private final String INEXISTENT_COLUMN_PATTERN = ?;
private final String DUPLICATE_DATA_PATTERN = ?;
...
try {
...
} catch (SQLException e){
if (e.getErrorCode() == INEXISTENT_COLUMN_ERROR)
System.out.println("User friendly error message caused by column " + this.matchPattern(e.getMessage(), this.INEXISTENT_COLUMN_PATTERN));
if (e.getErrorCode() == DUPLICATE_DATA_ERROR)
System.out.println("User friendly error message caused by duplicate data " + this.matchPattern(e.getMessage(), this.DUPLICATE_DATA_PATTERN));
}
...
private String matchPattern(final String string, final String pattern) {
final Pattern p = Pattern.compile(pattern);
final Matcher m = p.matcher(string);
...
}
因爲我.NET開發人員,但需要Java來完成當前任務,我想知道的例外爲C#(如果可用)= d – 1myb 2011-03-06 07:58:08
SMT想怎麼做其他的匹配'嘗試{}趕上{/ *做你永遠不會做的事* /}'? – 2011-03-06 08:41:42
是啊...但我如何從sql中捕獲消息並返回給用戶?像內容重複,只捕獲異常不會告訴用戶這個消息=。= – 1myb 2011-03-06 08:54:48