~~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;
}
}
------解决方案--------------------看看 你 的 cpu利用率
------解决方案--------------------很明显, 数据库连接没有被释放, 请检查所有的相关代码.