我写的一面的一段代码是从: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语句为什么这么慢,而别的地方执行更复杂的操作都是一瞬间的事,请大家帮帮忙,感激不尽
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语句为什么这么慢,而别的地方执行更复杂的操作都是一瞬间的事,请大家帮帮忙,感激不尽
解决方案 »
- 子类方法为什么不能低于超类方法的可见性
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
- c:forEach var="menu" items="${repository.topMenus}"中repository.topMenus是什么意思
- 简单加密问题。
- 运行的时候为什么说找不到系统文件啊?
- 编码问题,谁来帮我解决!!!!!!!!!!!!!!!
- 关于端口被占用的问题
- 请问,怎么通过java调一个excel文件打印命令(在window中)?谢
- 位图按扭
- 100分求助tomcat小问题
- 两种写法效率一样吗
- 这为什么都不行
到底什么原因啊