当前位置: 代码迷 >> Java Web开发 >> web项目,批处理代码,求批改
  详细解决方案

web项目,批处理代码,求批改

热度:1368   发布时间:2013-02-25 21:14:30.0
web项目,批处理代码,求修改。
Java code
String sq1="select * from HrEmployee where cardid in("+sa+")";String sq2="select * from EquFinger where cardid in("+sa+")";String sq3="select * from EquCard where cardid in("+sa+")";String st1[][]=msql.executeQuery(sq1,strDB1);String st2[][]=msql.executeQuery(sq2,strDB1);String st3[][]=msql.executeQuery(sq3,strDB1);                                                                        String sqla0="insert into  HrEmployee(EmplID,WorkID,CardID,DeptID,EmplName,Sex,EntryDate,LeaveYN,LastOperId,LastOperDate ) values (?,?,?,?,?,?,?,?,?,?)";String sqla1="insert into  EquFinger (EmplID,CardNo,BackupID,Privilege,pws  ) values (?,?,?,?,?)";                        String sqla2="insert into  EquCard (CardNo,EmplID,CardType,CardStatus ) values (?,?,?,?)";                        PreparedStatement psStatementin=msql.executeUpdate(sqla0,strDB2);                                                for(int i=0;i<st1.length;i++)                        {                                                        psStatementin.setString(1,st1[i][0]);                            psStatementin.setString(2,st1[i][1]);                            psStatementin.setString(3,st1[i][2]);                            psStatementin.setString(4,st1[i][3]);                            psStatementin.setString(5,st1[i][4]);                            psStatementin.setString(6,st1[i][5]);                            psStatementin.setString(7,st1[i][6]);                            psStatementin.setString(8,st1[i][7]);                            psStatementin.setString(9,st1[i][8]);                            psStatementin.setString(10,st1[i][9]);                                                        psStatementin.addBatch();                         }                                psStatementin.executeBatch();                                 msql.close();                                PreparedStatement psStatementin1=msql.executeUpdate(sqla1,strDB2);                                                        for(int i=0;i<st2.length;i++)                        {                                                                psStatementin1.setString(1,st2[i][0]);                            psStatementin1.setString(2,st2[i][1]);                            psStatementin1.setString(3,st2[i][2]);                            psStatementin1.setString(4,st2[i][3]);                            psStatementin1.setString(5,st2[i][4]);                                                                        psStatementin1.addBatch();                         }                                        psStatementin1.executeBatch();                         msql.close();                                        PreparedStatement psStatementin2=msql.executeUpdate(sqla2,strDB2);                                                    for(int i=0;i<st3.length;i++)        {                                                                                        psStatementin2.setString(1,st3[i][0]);                                            psStatementin2.setString(2,st3[i][1]);                                            psStatementin2.setString(3,st3[i][2]);                                            psStatementin2.setString(4,st3[i][3]);                                                                                        psStatementin2.addBatch(); }                                                psStatementin2.executeBatch();                                                 msql.close();                                                


排版有点乱,两个疑问,一个希望
1.那个close是关闭数据库连接的,核心代码,就是Connection 对象调用close()方法,我想问的是,用的着这样,关闭3次吗?
2.三次批处理,用了3个PreparedStatement对象,我想问,可以将这个对象反复使用吗?使用把它初始化成什么比较合理。
3.谁能帮我优化下,这批处理代码。谢谢

------解决方案--------------------------------------------------------
  相关解决方案