public static void test() throws SQLException{ Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
stmt = conn.createStatement();
String sql = "UPDATE USERTEST SET MONEY=MONEY-10 WHERE USERID=2";
stmt.executeUpdate(sql);//这句为什么不执行?

sql = "select money from USERTEST WHERE USERID=2";
rs = stmt.executeQuery(sql);
float money = 0.0f;
if (rs.next()) {
money = rs.getFloat("money");
}
if(money > 300)
throw new RuntimeException("已经超过最大值!");
} finally {
// 6关闭资源
JdbcUtils.free(conn, stmt, rs);
}
}

解决方案 »

  1.   

    stmt.executeUpdate(sql);//这句为什么不执行?这句只后也都不执行了
      

  2.   

    我有试着输出。到那行代码前还可以输出,之后就不输出了。
    你应该去你数据库里面看,你要修改的值是否改变,至于你说的输出,可能是其他的代码出现问题,让你的之输出不了
    我大概知道原因了。  我也用plsql在操作,是因为别提交事务吧。
      

  3.   

    我有试着输出。到那行代码前还可以输出,之后就不输出了。
    你应该去你数据库里面看,你要修改的值是否改变,至于你说的输出,可能是其他的代码出现问题,让你的之输出不了
    我大概知道原因了。  我也用plsql在操作,是因为别提交事务吧。
    这和事物没有关系,你的代码中,没有对事物进行管理。你想多了
      

  4.   

    我有试着输出。到那行代码前还可以输出,之后就不输出了。
    你应该去你数据库里面看,你要修改的值是否改变,至于你说的输出,可能是其他的代码出现问题,让你的之输出不了
    我大概知道原因了。  我也用plsql在操作,是因为别提交事务吧。
    这和事物没有关系,你的代码中,没有对事物进行管理。你想多了我另外还开了个能操作数据库的plsql,我在里面做了增删改,没commit
      

  5.   

    加catch  另外那句代码有返回值  int i = stmt.executeUpdate()  打印一下i