求教:为什么代码执行到 stmt.executeUpdate() 就诡异的停止了??
现在做的作业中,我自己写了一个工具类 DbUtils。
其中有一个 update 方法如下:
/** * 执行 SQL INSERT, UPDATE, DELETE 操作 * * @param sql * 需要执行的语句,按照 PreparedStatement 格式写 * @param objects * 需要的参数 * @return 影响的行数 */ public static int update(String sql, Object... objects) { for (Object o : objects) System.out.println(o); Connection conn = null; PreparedStatement stmt = null; int flag = -1; try { conn = getConnection(); stmt = conn.prepareStatement("update r_acc_info_t set f_mail_zone='3' where f_acc_id='1'"); // Oracle 10g 中的Jar包居然不支持,汗一个 // ParameterMetaData pm = stmt.getParameterMetaData(); // int count = StringUtils.countMatches(sql, "?");// // // 如果传入的是 objects 为 null,则不需要匹配参数// if (objects != null) {// // 如果传入的 objects 大于 sql 中需要的参数// if (objects.length > count) {// return flag;// }// // fill the PreparedStatement// for (int i = 0; i < count; i++) {// stmt.setObject(i + 1, objects[i]);// }// } flag = stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { closeAll(null, stmt, conn); } return flag; }