现在做的作业中,我自己写了一个工具类 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;
}
上面一段被注释掉是因为我想使用 Junit 测试,使用断点发现,代码执行到 flag = stmt.executeUpdate() 就不动了,JUnit 还在跑,没有抛出异常,也没有看到红绿色条。

解决方案 »

  1.   

    debug工具繁忙,稍微等一会儿。
    若还是不行,停了服务,然后重新debug。
    再不行,重启机器试试。
      

  2.   

     wen ti zhe men jie jue de 
      

  3.   

    停住不动的原因是因为数据库中并没有提交事务。而又继续执行SQL代码。。
    我用的oracle数据库出现的这个问题。。点击F10提交一下事务。。
    代码就可以执行了。。不然就卡在那里不动也不抛出异常