daoImpl 里面的
public void update(DaUser daUser) {
log.debug("开始更新用户详细信息");
this.getHibernateTemplate().saveOrUpdate(daUser);
}Action里面: public String add() throws Exception {
Map<String, Object> session = ActionContext.getContext().getSession();
String yanzhengma = session.get("yanzhengma").toString(); Encode encode = new Encode();
log.debug("判断输入的验证码是否正确");
if (encode.encodeByMD5(this.yanzhengma.toUpperCase())
.equals(yanzhengma)) {
log.debug("输入的验证码正确");
log.debug("准备添加用户详细信息");
DaUser daUser = new DaUser();
daUser.setUserCompany(userCompany);
daUser.setUserUrl(userUrl);
daUser.setUserRealname(userRealname);
daUser.setUserSex(userSex);
daUser.setUserPhone(userPhone);
daUser.setUserFax(userFax);
daUser.setUserAddress(userAddress);
daUser.setUserCode(userCode);
daUser.setUserShouji(userShouji);
daUser.setUsername(username);
log.debug("------------------username:" + username);
if(null!=userService.find(username)){
log.debug("更新用户详细信息.");
if(userService.update(daUser)){
log.debug("更新用户详细信息成功.");
return SUCCESS;
}else{
log.debug("更新用户信息失败");
return ERROR;
}
}
if (userService.add(daUser)) {
log.debug("添加详细信息成功");
return SUCCESS;
}
log.error("添加信息信息失败");
return ERROR;
} else {
log.debug("输入的认证码错误");
return ERROR;
}
}
怎么调用这个方法的时候都是save 而不是update啊?
public void update(DaUser daUser) {
log.debug("开始更新用户详细信息");
this.getHibernateTemplate().saveOrUpdate(daUser);
}Action里面: public String add() throws Exception {
Map<String, Object> session = ActionContext.getContext().getSession();
String yanzhengma = session.get("yanzhengma").toString(); Encode encode = new Encode();
log.debug("判断输入的验证码是否正确");
if (encode.encodeByMD5(this.yanzhengma.toUpperCase())
.equals(yanzhengma)) {
log.debug("输入的验证码正确");
log.debug("准备添加用户详细信息");
DaUser daUser = new DaUser();
daUser.setUserCompany(userCompany);
daUser.setUserUrl(userUrl);
daUser.setUserRealname(userRealname);
daUser.setUserSex(userSex);
daUser.setUserPhone(userPhone);
daUser.setUserFax(userFax);
daUser.setUserAddress(userAddress);
daUser.setUserCode(userCode);
daUser.setUserShouji(userShouji);
daUser.setUsername(username);
log.debug("------------------username:" + username);
if(null!=userService.find(username)){
log.debug("更新用户详细信息.");
if(userService.update(daUser)){
log.debug("更新用户详细信息成功.");
return SUCCESS;
}else{
log.debug("更新用户信息失败");
return ERROR;
}
}
if (userService.add(daUser)) {
log.debug("添加详细信息成功");
return SUCCESS;
}
log.error("添加信息信息失败");
return ERROR;
} else {
log.debug("输入的认证码错误");
return ERROR;
}
}
怎么调用这个方法的时候都是save 而不是update啊?
解决方案 »
- java方面生成文件保存时间的问题
- 什么时候使用javabean.servlet.jsp??
- 菜鸟问题,隆重发帖,Struts1方面的,呵呵
- 请问哪个地区招J2EE的小公司比较多啊
- 用JAVA实现程序文件的行数统计?
- 如何让单选按钮根据值自动进行选中 <html:radio>
- 我的连接oracle为何如此之慢???急啊!
- 求教:用WEBLOGIC当JSP+Javabean服务器,运行时提示找不到Javabean?
- 高手请进:关于corba服务
- spring管理事务,在一个事务内,插入一条数据,事务为结束,无法获取自增id
- 请问《深入浅出hibernate》和《精通hibernate》哪本好
- ssh框架中,PO数据传递的问题
Caused by: java.sql.BatchUpdateException: Duplicate entry 'fdsss' for key 2
我想,如果不是insert 的话 不会报这个的,因为insert的时候 之前已经有这个id的数据了catch出来的异常:
更改用户时出错.org.springframework.dao.DataIntegrityViolationException:
Could not execute JDBC batch update; nested exception is org.hibernate.exception
.ConstraintViolationException: Could not execute JDBC batch update
http://hi.baidu.com/wjx_pl/blog/item/f115004a66c6552009f7eff9.html
比如: DaUser daUser = new DaUser();
是临时对象,
如果要执行更新,应该先从数据库中加载DaUser对象
之后对其属性进行修改,之后再调用
saveOrUpdate才会更新,也就是说update需要有id
这里用来判断的username是主键吗
谢谢你哈,我添加了个Id 就可以了。
但我还是new一个对象的啊?这是怎么回事呢?