同意用存储过程。用存储过程的时候,你可以定义Handler,可以根据SQLSTATE来判断,如果发现删除失败,而且是由于外键引起的(有对应的SQLSTATE代码的,不同sql方言可能不同),那么就不能删除。可以返回错误代码
成都创新互联技术团队10年来致力于为客户提供网站建设、网站设计、品牌网站制作、成都全网营销、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了1000+网站,包括各类中小企业、企事单位、高校等机构单位。
另外,JAVA里面,其实你只要catch到sqlexception,管它是什么错误呢?如果SQLEXCEPTION发生(1是SQL系统挂了,你的例子中2 是由于删除失败(外键)。不管什么情况,都表征失败了。不就可以了?
根据ER图来判断是否有外键,这样可行吗?
这样JAVA代码就要依靠ER图了,实际开发中,这种后期维护挺不容易的。尽量要避免这种代码依赖。
按照你的要求编写的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, "跳往另一页面?", "跳转警告",JOptionPane.WARNING_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
if(n==0){
FL fl=new FL();//创建新页面
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);
}
}
运行结果
删除肯定是个ajax操作把本条数据id传到后台执行,在回调函数中刷新页面或执行相应操作,编辑则一般是个链接跳到编辑页面(通常也是新增页面)同样也把id带过去
建议你使用卓正软件的pageoffice,它还是跨浏览器的呢。网上有很多它的示例代码你搜搜看。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款