同意用存儲過程。用存儲過程的時候,你可以定義Handler,可以根據(jù)SQLSTATE來判斷,如果發(fā)現(xiàn)刪除失敗,而且是由于外鍵引起的(有對應(yīng)的SQLSTATE代碼的,不同sql方言可能不同),那么就不能刪除??梢苑祷劐e誤代碼
成都創(chuàng)新互聯(lián)技術(shù)團隊10年來致力于為客戶提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、品牌網(wǎng)站制作、成都全網(wǎng)營銷、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗豐富的技術(shù)團隊,先后服務(wù)、推廣了1000+網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機構(gòu)單位。
另外,JAVA里面,其實你只要catch到sqlexception,管它是什么錯誤呢?如果SQLEXCEPTION發(fā)生(1是SQL系統(tǒng)掛了,你的例子中2 是由于刪除失敗(外鍵)。不管什么情況,都表征失敗了。不就可以了?
根據(jù)ER圖來判斷是否有外鍵,這樣可行嗎?
這樣JAVA代碼就要依靠ER圖了,實際開發(fā)中,這種后期維護挺不容易的。盡量要避免這種代碼依賴。
按照你的要求編寫的Java的帶取消的警告信息框的完整程序如下
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?javax.swing.JButton;
import?javax.swing.JFrame;
import?javax.swing.JLabel;
import?javax.swing.JOptionPane;
import?javax.swing.JPanel;
public?class?F?extends?JFrame?implements?ActionListener{
JButton?jb=new?JButton("確定");
JPanel?jp=new?JPanel();
F(){
jb.addActionListener(this);
jp.add(jb);
add(jp);
setSize(200,?200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public?static?void?main(String[]?args)?{
new?F();
}
@Override
public?void?actionPerformed(ActionEvent?ae)?{
if(ae.getSource()==jb){
int?n=JOptionPane.showConfirmDialog(this,?"跳往另一頁面?",?"跳轉(zhuǎn)警告",JOptionPane.WARNING_MESSAGE,?JOptionPane.OK_CANCEL_OPTION);
if(n==0){
FL?fl=new?FL();//創(chuàng)建新頁面
this.dispose();//銷毀舊頁面
}
}
}
}
class?FL?extends?JFrame{
JLabel?jl=new?JLabel("另一頁面");
JPanel?jp=new?JPanel();
FL(){
jp.add(jl);
add(jp);
setSize(200,?100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
}
運行結(jié)果
刪除肯定是個ajax操作把本條數(shù)據(jù)id傳到后臺執(zhí)行,在回調(diào)函數(shù)中刷新頁面或執(zhí)行相應(yīng)操作,編輯則一般是個鏈接跳到編輯頁面(通常也是新增頁面)同樣也把id帶過去
建議你使用卓正軟件的pageoffice,它還是跨瀏覽器的呢。網(wǎng)上有很多它的示例代碼你搜搜看。