如下代码:
表示为先将数据添加到主表中,然后再添加到从表中,,
怎么实现这个事务?
谢谢!! if(flag){
//将备货单信息加载到数据库中
//out.println(number);
String sql="{call proc_addDepotOutHelpDraw(?,?,?,?,?,?,?,?)}";
try{
CallableStatement cstmt=conn.prepareCall(sql);
cstmt.setString(1,number);
cstmt.setString(2,supplyName);
cstmt.setDate(3,drawDate);
cstmt.setString(4,procureNumber);
cstmt.setString(5,tabulate);
cstmt.setString(6,re);
cstmt.setString(7,session.getAttribute("userID").toString());
cstmt.setString(8,request.getRemoteAddr());
cstmt.executeUpdate();
cstmt.close();
conn.closeConn();
}catch(SQLException ex){
out.println("增加外协领料记录错误(DepotOutHelpDraw.jsp):"+ex.getMessage());
} //逐条添加记录
sql="{call proc_addDepotOutHelpDrawList(?,?,?,?,?)}";
for(int i=0;i<_textfield1.length;i++){
try{
CallableStatement cstmt=conn.prepareCall(sql);
cstmt.setString(1,number);
cstmt.setString(2,_textfield1[i]);
cstmt.setString(3,_textfield6[i]);
cstmt.setString(4,session.getAttribute("userID").toString());
cstmt.setString(5,request.getRemoteAddr());
cstmt.executeUpdate();
cstmt.close();
conn.closeConn();
//修改库存数量
functions.setResAbateNumber(_textfield1[i].toString(),Integer.parseInt(_textfield6[i]),out);
}catch(SQLException ex){
out.println("增加外协领料明细错误(DepotOutHelpDraw.jsp):"+ex.getMessage());
}
}
//functions.setListNumber(4,out);
functions.writeNote("增加外协领料单:["+number+"]成功...",1,request.getRequestURI(),session.getAttribute("userID").toString(),request.getRemoteAddr());
functions.alertMsg("外协领料单填写完毕,请等待审核",out);
out.println("<script>location.href='DepotOutHelpDraw.jsp'</script>");
}
表示为先将数据添加到主表中,然后再添加到从表中,,
怎么实现这个事务?
谢谢!! if(flag){
//将备货单信息加载到数据库中
//out.println(number);
String sql="{call proc_addDepotOutHelpDraw(?,?,?,?,?,?,?,?)}";
try{
CallableStatement cstmt=conn.prepareCall(sql);
cstmt.setString(1,number);
cstmt.setString(2,supplyName);
cstmt.setDate(3,drawDate);
cstmt.setString(4,procureNumber);
cstmt.setString(5,tabulate);
cstmt.setString(6,re);
cstmt.setString(7,session.getAttribute("userID").toString());
cstmt.setString(8,request.getRemoteAddr());
cstmt.executeUpdate();
cstmt.close();
conn.closeConn();
}catch(SQLException ex){
out.println("增加外协领料记录错误(DepotOutHelpDraw.jsp):"+ex.getMessage());
} //逐条添加记录
sql="{call proc_addDepotOutHelpDrawList(?,?,?,?,?)}";
for(int i=0;i<_textfield1.length;i++){
try{
CallableStatement cstmt=conn.prepareCall(sql);
cstmt.setString(1,number);
cstmt.setString(2,_textfield1[i]);
cstmt.setString(3,_textfield6[i]);
cstmt.setString(4,session.getAttribute("userID").toString());
cstmt.setString(5,request.getRemoteAddr());
cstmt.executeUpdate();
cstmt.close();
conn.closeConn();
//修改库存数量
functions.setResAbateNumber(_textfield1[i].toString(),Integer.parseInt(_textfield6[i]),out);
}catch(SQLException ex){
out.println("增加外协领料明细错误(DepotOutHelpDraw.jsp):"+ex.getMessage());
}
}
//functions.setListNumber(4,out);
functions.writeNote("增加外协领料单:["+number+"]成功...",1,request.getRequestURI(),session.getAttribute("userID").toString(),request.getRemoteAddr());
functions.alertMsg("外协领料单填写完毕,请等待审核",out);
out.println("<script>location.href='DepotOutHelpDraw.jsp'</script>");
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货