请大家帮忙看一下我下面的这个方法调用。执行了之后,程序不报任何错误,但是数据库中的数据没有更新。一直找不到原因请高手指点一下!
User u = new User();
String phone = umaf.getPhone();
String addr = umaf.getAddr();
try {
u.setPhone(phone);
u.setAddr(addr);
u.update();
} catch (Exception e) {
System.out.println("更新失败!");
e.printStackTrace();
return mapping.findForward("error");
}
中间调用的update()方法如下:
public void update(){
Connection conn = DB.getConn();
String sql = "update ruser set phone = ?, addr = ? where id = ?";
PreparedStatement pstmt = DB.prepare(conn, sql);
try {
// System.out.println(phone);
// System.out.println(addr);
// System.out.println(id);
pstmt.setString(1, phone);
pstmt.setString(2, addr);
pstmt.setInt(3, id);
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DB.close(pstmt);
DB.close(conn);
}
}System.out.println(phone);
System.out.println(addr);
System.out.println(id);
输出也正常 但是数据库就是不更新!

解决方案 »

  1.   


      你的 sql 对象传入到 PreparedStatement pstmt = DB.prepare(conn, sql);  DB 类里面,但是 set ? 的时候是在 update 里面 设置值的 ,
      

  2.   

      PreparedStatement pstmt = DB.prepare(conn, sql); 
    这个下面加上一个pstmt=conn.prepareStatement(sql); 你看看
    可能是我说这个地方造成的