尊重原创!!!
开发软件:myeclipse 10+oracle 11g
开发项目:租房系统
开发人员:1111
出现的问题:在前台发布房屋信息的界面插入数据时,自动跳转到查询所有房屋信息的页面,数据显示不完整,本表的可以显示,有外键的都显示不出来,(比如,街道(Street)信息是一个单独的表,在房屋信息表(House)里面引用的街道表的id,通过Street street=new Street(),street.getName()来获取街道名字),运行完之后也不报错,但是就是不显示!!!
直接上图可能更详细点;



问题分析:
这种问题还是第一次见,自己初步分析:
1.可能是前台通过jstl获取数据的时候,字段显示不对?
2.在servlet里面没有把街道信息放在request作用域里面?
3.没有提交(commit());
4.数据库里面可能就没有把街道信息添加进去!
问题分析完之后那就开始一个一个的检查,先看显示房屋信息的界面,验证分析1是否正确:


仔细检查之后发现排除分析1
继续在看分析2是否正确,



发现我都放进作用域里面了,并且一块转发到了显示的界面,有点纳闷了,这又是为啥呢?
既然分析二也排除掉,那就接着看分析3和分析4,她两一块看,先去数据库里面看看添加上来了没,数据库里面没有的话就是没有commit,然后我就在数据库里面查了一遍

卧槽,数据倒是进来了,但是为什么不显示呢?根据已有的思路都分析完了,还是不行咋整?灵机一动,去问问百度吧,也许能问出点啥来了!!
好,说走咱就走,问了下百度,百度和我说了一堆废话。。。。什么配置文件错误,映射文件有误......靠天靠地不如靠自己,使劲用脑子在想解决方法,继续分析:既然数据库里面都有数据,前台没有数据?前台页面的其他记录都是从数据库里获取的,不应该光这个获取不到啊,重启服务试试!!!
重启了下服务,上来前台页面看了下,.....显示出来了,数据都显示出来了,包括街道和房屋类型一个都没少

难道是我服务的事?于是乎,继续添加一条记录试试看。赶紧添加完之后跳转到显示所有的页面,奇诡的是其他的记录都有,就是新添加的这条记录没有显示出来。。。居然还是不行,既然还不行的话我就在DaoImpl里面把各个时期的值输出来看看是哪里没数据?


有数据,包括新添加的也在里面,那就去看看Servlet里面的数据看看有没有?

没办法,也有数据,继续在想哪里的原因,难道是hibernate缓冲的问题?(之前无意间看到hibernate的缓冲),那就按照缓冲来测试一下,先把session.close看看是否管用

执行的时候报错!session 是关闭的!!既然关闭了不行,那就试试flush(),与数据库同步数据看看会怎么样!

报错倒是不报错,但是白搭,还是和之前一样,那就在试试clear()看看怎么样,过了2分钟,测试完毕,还是一样居然,图就不上了!!!不能这样乱测试了,在静下来好好的分析一下哪里的问题!之前一直是在添加的DaoImpl里面测试session的clear() flush() close(),感觉不大对劲,既然是查询不出来,那就得在查询的方法里面清除session的缓冲,开始行动,我给添加的方法里面清空了一下session,用的是clear(),在查询的里面用的是flush(),感觉这样分析应该没问题,让查询的数据和数据库里面进行同步,就不信还不行?
于是抱着试试的态度进行测试了一下,居然可以显示出来了。解决了一晚上没有解决掉的bug,终于解决掉了!!!所以总结一下session的clear()和flush的区别:
最简单的理解就是:
session.flush()的作用就是将session的缓存中的数据与数据库同步。
session.clear()的作用就是清除session中的缓存数据。
还有不足的地方还请各位大神多多指点指点,本人的总结就这些了!!!
分享到:
相关推荐
在这个案例中,"SpringMVC+Spring+Hibernate+Oracle 实现图书管理(CRUD)"是一个使用了四大主流Java技术栈的项目,分别是SpringMVC作为前端控制器、Spring作为应用层框架、Hibernate作为持久层框架,以及Oracle作为...
基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh...
本文将详细解析基于注解的SpringMVC+Hibernate+Oracle数据库集成的实现过程及其核心知识点。 首先,SpringMVC是Spring框架的一部分,它是一个轻量级的MVC(Model-View-Controller)框架,用于处理HTTP请求和响应。...
本系统采用struts2+spring+hibernate+oracle代码齐全完整,适合作为SSH毕业设计,java毕业设计项目,计算机毕业设计,java课程设计,还是很不错的 很值得收藏 学习 探讨 研究。
JSP-车辆管理系统(struts+hibernate+spring+oracle) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! JSP-车辆管理系统(struts+hibernate+spring+oracle) JSP-车辆管理系统(struts+hibernate+spring+oracle) ...
【标题】"市调管理系统struts2+hibernate+oracle"揭示了这是一个基于Java技术栈的Web应用程序,主要用于市场调查数据的管理。系统利用了Struts2作为MVC框架,Hibernate作为对象关系映射(ORM)工具,以及Oracle...
【标题】"jsp+servlet+hibernate+购物车系统"是一个基于Web的电商应用程序,它结合了三种核心技术:JavaServer Pages(JSP)、Servlet和Hibernate。这个系统旨在实现一个完整的购物过程,包括商品浏览、选择商品加入...
计算机毕业设计成品 JAVA JSP 车辆管理系统(struts+hibernate+spring+oracle) 计算机毕业设计成品 JAVA JSP 车辆管理系统(struts+hibernate+spring+oracle) 计算机毕业设计成品 JAVA JSP 车辆管理系统(struts+...
综上所述,车辆管理系统利用Struts处理用户交互,Hibernate管理数据库持久化,Spring提供依赖注入和事务管理,而Oracle数据库则存储所有车辆相关数据。这样的架构设计保证了系统的高效运行和可扩展性,为车辆管理...
不错的适合练手、课程设计、毕设的JSP项目源码:通用的在线考试系统(jsp+struts+hibernate+oracle)不错的适合练手、课程设计、毕设的JSP项目源码:通用的在线考试系统(jsp+struts+hibernate+oracle)不错的适合练手、...
这是一个基于Java技术栈的车辆管理系统源码,使用了经典的SSH框架(Struts、Hibernate和Spring)结合Oracle数据库进行开发。SSH框架是Java Web开发中常用的技术组合,它们各自承担着不同的职责,共同构建了一个功能...
SpringMVC、Hibernate和Oracle是Java Web开发中的三大核心技术,它们共同构建了一个强大的后端系统,可以实现诸如登录、注册以及数据的增删改查等基本功能。下面将详细讲解这三个技术及其在实际项目中的应用。 ...
最新最全面的java jsp项目 通用的在线考试系统 可用于毕业论文 jsp+struts+hibernate+oracle Eclipse+tomcat开发 高质量代码 导入数据库即可用 文档包括: 软件说明书 具体功能: 学员注册 学员登录 学员查看成绩...
论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts...
【标题】"jsp+hibernate+oracle出库单模块"是一个基于Web的库存管理系统中的一个关键组件,它主要用于管理仓库中的货物出库流程。在这个模块中,开发人员使用了JavaServer Pages(JSP)作为前端展示技术,Hibernate...
综上所述,"车辆管理系统(struts+hibernate+spring+oracle)130225.rar"是一个使用现代Java技术栈构建的企业级应用,其设计遵循了良好的软件工程原则,提供了一个高效、可扩展的车辆信息管理平台。通过SSH框架的协同...
在Java EE应用开发中,构建基于Hibernate、Spring和Oracle的MVC架构实例是一个常见的实践,它可以帮助开发者实现高效、模块化的后端系统。这个实例主要涵盖了以下知识点: 1. **Model-View-Controller (MVC) 架构**...
SSH是Java开发中的一种经典架构组合,由Struts、Spring和Hibernate三个开源框架组成,用于构建企业级的Web应用程序。这个“移动SSH项目”显然基于这个框架,结合Oracle数据库,提供了一个毕业设计的实例,旨在帮助...