融智技术学院

 找回密码
 注册
查看: 534|回复: 1

[求助] [21天学通Java Web开发]第21章SSH整合开发用户管理系统,更新用户模块无效,请教

[复制链接]
黑色咆哮 发表于 2015-8-5 17:35:45 | 显示全部楼层 |阅读模式
我直接把书附带的光盘中ch21直接在myEclipse 6.5中import...
在myEclipse中部署tomcat 6运行后,更新功能无效, 新增用户,查询所有用户,查询用户详情,删除用户 都没问题的。
没错误提示,控制台显示 hibernate没有运行update set ...命令,运行的是 select...命令
IE输入http:// 127.0.0.1:8080/ch21/showAll.action后,显示数据表中所有用户信息,例如选了第一行用户信息 最右边的 更新 按钮,按一次更新后,会跳转到http:// 127.0.0.1:8080/ch21/update.jsp?id=1 的更新用户页面,但是输入新的信息后,点 更新 按钮后,控制台显示
Hibernate: select user0_.id as id0_0_, user0_.username as username0_0_, user0_.password as password0_0_, user0_.age as age0_0_, user0_.birth as birth0_0_, user0_.email as email0_0_ from User user0_ where user0_.id=?
IE一直反复出现http:// 127.0.0.1:8080/ch21/ update.action 对应的 更新用户页面,更新数据模块似乎没起作用。
求教!

 楼主| 黑色咆哮 发表于 2015-8-20 23:37:54 | 显示全部楼层
问题已解决。解决方法 不停的调试,找错,核对书中附送的项目代码与自己写的有哪些不同。在自己觉得有问题的地方尝试修改代码,调试失败N次,还要继续去想哪里可能有错误,尝试修改,加上点运气就解决了。

DAO实现类UserDAOImpl.java的更新用户方法那块:
public void update(User user) {
                this.getHibernateTemplate().saveOrUpdate(user);
               
        }
//上面那行,我改成了this.getHibernateTemplate().update(user);

然后也是非常关键的 业务逻辑组件实现类UserServiceImpl.java
//更新数据块
public boolean updateUser(User user) {
                //判断是否存在相同ID的数据
                if(UserDAO.queryByID(user.getId())!=null)
                {
                     UserDAO.update(user);        //如果存在,调用DAO组件进行更新
                }else
                {
                return false;
                }
                return true;
        }
//我也没想到,就是这个return true;出现的不是地方。把最后的return true;注释掉,粘贴到if语句的  UserDAO.update(user); 这行的下面,问题就解决了。更新功能就正常启动了。
说实话这么诡异的想法亏我想的出来。return true放在if语句里面和放在if语句外面似乎没有什么区别。只能说放在if语句{ 中 } 判断成立,执行if语句下面那行代码后直接返回了true,所以后面的else { return false; }就没机会调用了,并且在判断语句外的return true;也不会被调用了。{:soso_e183:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新突破电商

小黑屋|手机版|Archiver|融智技术学院 ( 京ICP备09018999号 )

GMT+8, 2019-8-23 01:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表