当前位置: 代码迷 >> J2EE >> 为什么代码执行到 stmt.executeUpdate() 就诡异的停止了?
  详细解决方案

为什么代码执行到 stmt.executeUpdate() 就诡异的停止了?

热度:671   发布时间:2016-04-22 02:56:42.0
求教:为什么代码执行到 stmt.executeUpdate() 就诡异的停止了??
现在做的作业中,我自己写了一个工具类 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。
再不行,重启机器试试。
------解决方案--------------------
命令行添加好使不
------解决方案--------------------
把控制台的异常贴出了,会容易知道错误
  相关解决方案