当前位置: 代码迷 >> Java Web开发 >> ~java+sql批处理,如何执行一段时间后再执行调用就直接基本上就停住了(就是超慢慢),执行不下去了
  详细解决方案

~java+sql批处理,如何执行一段时间后再执行调用就直接基本上就停住了(就是超慢慢),执行不下去了

热度:50   发布时间:2016-04-17 13:11:10.0
~~java+sql批处理,怎么执行一段时间后再执行调用就直接基本上就停住了(就是超慢慢),执行不下去了 ~
这是我封装的getConnect是从连接池中获取的链接,好像我可以顺利执行的次数根我的连接池的最大连接数有关系,连接数设大了就可以多执行一会,设小了就执行时间断了。就是批处理这块出问题,我项目中别的地方单语句都很好。
public   static   boolean   executeBatch(String   sql[],   String   errorMethodName)   {
Connection   conn=null;
Statement   stat=null;
try   {
conn   =   DbManager.getConnect();
conn.setAutoCommit(false);
stat   =   conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
stat.clearBatch();
for   (int   i   =   0;   i   <   sql.length;   i++)   {
stat.addBatch(sql[i]);
}
int   success[]   =   stat.executeBatch();
if   (success   !=   null)   {
conn.commit();
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
return   true;
}   else   {
conn.rollback();
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
return   false;
}

}   catch   (Exception   e)   {
try   {
conn.rollback();
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
return   false;
}   catch   (SQLException   e1)   {
//   TODO   Auto-generated   catch   block
e1.printStackTrace();
return   false;
}

}

------解决方案--------------------

------解决方案--------------------
stat = conn.createStatement();
stat.clearBatch();//去掉
///在exception里捕获异常并回滚
  相关解决方案