java中对数据库中表的增、删、改,无报错,增删功能可以实现唯独修改无法改数据,求高手看看

ProcessUsersServlet类
// 修改
if ("update".equals(type)) {
// 客户端传来的
String id = request.getParameter("id");
String username = request.getParameter("username");
String password = request.getParameter("password");
String truename = request.getParameter("truename");
String birthday = request.getParameter("birthday");
String sex = request.getParameter("sex");
String[] interest = request.getParameterValues("interest");
String remark = request.getParameter("remark");

// 将字符串转换成真正的日期类型
java.sql.Date birthdayToDate = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
// 将一个字符串转换成Date
java.util.Date date = sdf.parse(birthday);

birthdayToDate = new java.sql.Date(date.getTime());
} catch (ParseException e) {
// TODO: handle exception
e.printStackTrace();
}

String interestToString = null;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < interest.length; i++) {
sb.append(interest[i]);
}
interestToString = sb.toString();

Users bean = new Users();

bean.setUsername(username);
bean.setPassword(password);
bean.setTruename(truename);
bean.setBirthday(birthdayToDate);
bean.setSex(sex);
bean.setInterest(interestToString);
// bean.setRegisterdate(new java.sql.Date(new java.util.Date().getTime()));
bean.setRemark(remark);

UsersDB userDB = new UsersDB();
userDB.update(bean);

//显示所有用户信息
ArrayList arrayList = userDB.getAllUsers();
request.setAttribute("all", arrayList);
request.getRequestDispatcher("/listAllUsers.jsp").forward(request,
response);

}

UsersDB方法
// 更新一笔记录
public void update(Users bean) {

try {
Connection con = this.getConnection();
String sql = "update users set password=?,truename=?,birthday=?,sex=?,interest=?,remark=? where id=?";
PreparedStatement ps = con.prepareStatement(sql);

ps.setString(1, bean.getPassword());
ps.setString(2, bean.getTruename());
ps.setDate(3, bean.getBirthday());
ps.setString(4, bean.getSex());
ps.setString(5, bean.getInterest());
ps.setString(6, bean.getRemark());
ps.setInt(7, bean.getId());

ps.executeUpdate();// 真正的完成数据的更新
con.close();

} catch (Exception ex) {
// TODO: handle exception
System.out.println("修改记录发生异常:" + ex.getMessage());
}

}

Users bean = new Users();
你在封装这个对象的时候,并没有把id封装进去。所以就无法根据id更新。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-19
我看到你Users 的id没有赋值,sql语句需要根据id定位记录的
第2个回答  2012-02-10
这个ID是否存在?或者有没有找到这条数据?追问

在ProcessUsersServlet类的最后加上下面的代码都是有值的而且还是刚改的值,可查询的时候数据不会改变,还是原来的数据。
System.out.println(id);
System.out.println(username);
System.out.println(password);
System.out.println(truename);
System.out.println(birthdayToDate);

第3个回答  2012-02-10
看看从客户端传来的对象是否正确
相似回答