我写的一面的一段代码是从:actionPerformed(ActionEvent e)里面截出来的:
if(obj==check || obj==tCheck)
{
int selRow=dataTable.getSelectedRow();
if(selRow>=0)
{
try
{
     String sql="select mjsc_zt from user_mjsc where mjsc_id=" + getSelectedRowID();
     Statement st=main.getConnection().createStatement();
     ResultSet rs = st.executeQuery(sql);
     if(rs.next())
     {
     if(rs.getInt("mjsc_zt")==0)
     {
     if(getSelectedRowOrderState(selRow)==1)
     {
     CancelMission(getSelectedRowID());
refreshCurrentSQL();
JOptionPane.showMessageDialog(main,"此订单已经被暂停,任务已撤消,请选择其它订单。","提示",JOptionPane.INFORMATION_MESSAGE);
     rs.close();
     st.close();
return;
     }
     }
     else
     {
     JOptionPane.showMessageDialog(this,"此订单模具正在数控加工或已加工完成,不能再进行开工操作!","非法操作",JOptionPane.ERROR_MESSAGE);
     rs.close();
     st.close();
     return;
     }
     }
     else
     {
     JOptionPane.showMessageDialog(this,"数据不存在,请确认","注意",JOptionPane.WARNING_MESSAGE);
     rs.close();
     st.close();
     return;
     }
    
     rs.close();
     st.close();
}
catch(SQLException err)
{
ErrorReport.print(err);
    JOptionPane.showMessageDialog(this,"系统因下列原因无法保存你的数据:\n" + err.getMessage(),"错误",JOptionPane.ERROR_MESSAGE);
}

//new doWork(selRow);
Object[] message= new Object[2]; 
message[0] = "开始任务加工并确定加工员:";
                JPanel panel=new JPanel(null);
                JLabel lbl1=new JLabel("加 工 员:");
                lbl1.setBounds(15,1,60,18);
    EmployeeField cb=new EmployeeField(main,main.getConnection(),EmployeeField.JITAI,-1,16);
    cb.setBounds(76,0,82,21);
                panel.add(lbl1);
                panel.add(cb);
                panel.setPreferredSize(new Dimension(50,25));
                message[1] = panel;
                
                String[] options = {"确定","取消"}; 
int result=JOptionPane.showOptionDialog(this,message,"开工",JOptionPane.DEFAULT_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,options[0]);
 
  switch(result) { 
      case 0: 
try
     {
     int CDY=cb.getID();
    
     if(CDY<0)
     {
     JOptionPane.showMessageDialog(this,"请指定加工员!","错误",JOptionPane.ERROR_MESSAGE);
     return;
     }
    
         Statement st=main.getConnection().createStatement();
        
         String sql="update user_mjsc set mjsc_ygid=" + CDY + ",mjsc_zt=1,mjsc_kgsj=getdate() where mjsc_id=" + getSelectedRowID(selRow);
         st.execute(sql);
                          
                          String str="开工数控任务,记录id:" + getSelectedRowID(selRow) + ",加工员:" + CDY + ",操作员:" + main.getEmployeeID();
                     main.addLog(str);//这个是一个添加日志的方法
     refreshCurrentSQL();
        break; 
     }
     catch(SQLException err)
     {
     ErrorReport.print(err);
     JOptionPane.showMessageDialog(this,"因下列原因操作没有完成:\n" + err.getMessage(),"SQLException",JOptionPane.ERROR_MESSAGE);
     break;
     }
      default: 
        break;
        }
}
else
{
JOptionPane.showMessageDialog(this,"请选择要开工的订单!","注意",JOptionPane.WARNING_MESSAGE);
}
}在出来这个对话框是很快的,基本上我一点按牛就出来了,慢的是,当我填好加工员后,不知道为什么这个程序要过几十秒才能完成操作。
而在我自己的电脑上测试的时候,点了确定马上就好了,而在客户那边所有的电脑都很慢,有的电脑甚至要1、2分钟。就连他们的服务器也要40+秒,我实在是找不到原因了,请各位帮我看看这个到底是怎么回事,点确定后也就执行一句sql语句为什么这么慢,而别的地方执行更复杂的操作都是一瞬间的事,请大家帮帮忙,感激不尽