现在做的作业中,我自己写了一个工具类 DbUtils。
其中有一个 update 方法如下:
- Java code
/** * 执行 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; }
上面一段被注释掉是因为我想使用 Junit 测试,使用断点发现,代码执行到 flag = stmt.executeUpdate() 就不动了,JUnit 还在跑,没有抛出异常,也没有看到红绿色条。
------解决方案--------------------
debug工具繁忙,稍微等一会儿。
若还是不行,停了服务,然后重新debug。
再不行,重启机器试试。
------解决方案--------------------
命令行添加好使不
------解决方案--------------------
把控制台的异常贴出了,会容易知道错误