新人小白,想要测试statement和preparedstatement批量处理的效率做了以下测试
public static void main(String[] args) { Connection conn = null; Statement stmt = null; long time = System.currentTimeMillis(); conn = JDBCUtils.getConnection(); try { stmt = conn.createStatement(); for(int i=0; i<5000; i++) { String sql = "INSERT INTO b_user(id,NAME,PASSWORD,age) VALUES(1,'s','s',1);"; // 添加需要批量处理的数据 stmt.addBatch(sql); } // 批量执行sql语句 stmt.executeBatch(); System.out.println("mysql statement batch time:" + (System.currentTimeMillis() - time)); } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtils.closeResource(null, stmt, conn); } }
但是执行结果没有显示打印语句也没有报错,数据库中已经存在批量插入的数据,在executeBatch()语句前设断点后debug发现程序没有运行至打印语句。求大手子解释解释0 0?
如果没有异常应该会打印到终端上
是否出现了SQLException以外的异常
所以我最奇怪的就是这点,没有打印也没有抛出任何异常