`
lean1252
  • 浏览: 219030 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tapestry4解决数据库重复读取的问题

阅读更多
最近发现程序的响应速度极其慢,然后调试发现,程序有的地方本应读取一次数据库的地方,读了好几次,这样势必造成性能上的响应问题。
造成此问题的原因,发现是由于tapestry自身的机制造成的。
下面给一点小小的源码进行对比:
重复读取数库:
public List getRecordsFromDB() {
   return "返回数据库查找到的记录集";
} 
/*在该方法里设置段点时,将查找数据库四次*/


解决方法:在Page类中定义一个变量
public List records = null;
public void pageBeginRender(PageEvent event) {
    if(records == null) {
       records = getRecordsFromDB();
    }
}
/*在getRecordsFromDB()中设置段点,将执行一次*/


public void pageEndRender(PageEvent event) {//一定要在页面显示完后进行销毁
      records = null;
}


鉴于以上示例,重复读取数据库的问题得到解决。 :-)
不知道各位还有没有什么好久解决办法,可以拿来互相探讨一下
分享到:
评论
8 楼 tapestry2008 2008-11-16  
可以在detach方法撤销对象。
7 楼 lean1252 2008-11-10  
,以后只要用到这个页面那个list的值不会发生
superaxis 写道

楼上这个代码很有问题的说。因为每个page实例从pool中取得的,你要是这样做了之后,以后只要用到这个页面那个list的值不会发生变化。

你说的对,还需要实现PageEndRenderListener接口,然后在pageEndRender方法中进行销毁。我把它加上吧。
6 楼 superaxis 2008-11-03  
楼上这个代码很有问题的说。

因为每个page实例从pool中取得的,你要是这样做了之后,以后只要用到这个页面那个list的值不会发生变化。
5 楼 linsy 2008-10-15  
设成属性也可,因为变量还要在initilaze()中清空。
否则变量值会一直存在。不知我讲的正不正确?
4 楼 lean1252 2008-10-09  
hanfengmvp 写道

其实我到不觉的这个是什么问题,数据量大慢一点就慢一点吧,如果你让数据第一次读取进来作为list缓存,数据得不到实时的更新,这样带来带来的统计会不会不准确?

我想你误解我的意思了,我的本意是解决其向数据库重复读取的问题。:-)
3 楼 hanfengmvp 2008-10-05  
其实我到不觉的这个是什么问题,数据量大慢一点就慢一点吧,如果你让数据第一次读取进来作为list缓存,数据得不到实时的更新,这样带来带来的统计会不会不准确?
2 楼 lean1252 2008-09-15  
谢谢你的建议,我去试试:)
1 楼 tapestry 2008-09-14  
使用Tacos的@Cached

相关推荐

    Tapestry4开发指南

    Tapestry4与Hivemind的结合,虽然在最初可能会引发一些争议,尤其是对于那些习惯于Spring框架的开发者,但深入理解和使用后,你会发现Hivemind在依赖注入(IoC)和控制反转(DI)方面提供了简洁的解决方案。...

    tapestry4开发指南

    《Tapestry 4开发指南》是一本专为初学者设计的书籍,旨在帮助读者深入理解和熟练运用Tapestry 4这一强大的Java Web框架。Tapestry 4是一款开源的、基于组件的Web应用程序框架,它允许开发者用更加面向对象的方式来...

    Tapestry 4 官方文档中版本

    "Tapestry4 Users Guide" 和 "Tapestry4 Quick Start" 这两份文档,分别提供了全面的用户指南和快速入门教程,帮助开发者了解和掌握Tapestry 4的使用方法和最佳实践。 10. **社区支持**: 作为Apache项目的一部分...

    tapestry4+spring+hibernate整合实例

    通过这种方式,我们可以利用Tapestry4的动态页面生成,Spring的强大管理能力,以及Hibernate的便捷数据库操作,构建出高效、健壮的Web应用程序。学习和掌握这种整合方式,对于提升Java Web开发能力非常有帮助。

    深入浅出Tapestry4一书源代码(2)

    《深入浅出Tapestry4》是一本专为开发者深入理解Tapestry4框架而编写的书籍。Tapestry4是Apache软件基金会开发的一个开源Web应用程序框架,它以组件化和事件驱动的方式,极大地简化了Java Web应用的开发。本章节我们...

    Tapestry4开发指南.rar

    Tapestry4开发指南.rar Tapestry4开发指南.rar Tapestry4开发指南.rar

    tapestry4和5学习资料

    用户手册提供了关于Tapestry的全面参考信息,包括API文档、配置选项、问题排查等。对于日常开发来说,这是一份非常实用的工具书,可以帮助开发者迅速查找并理解各种功能和方法。 通过这些资料的学习,开发者不仅能...

    深入浅出Tapestry4一书源代码(1)

    Tapestry4是一个古老的Java Web开发框架,由Apache软件基金会维护。这个框架以其组件化、声明式编程和高度可扩展性著称,旨在简化Web应用的构建过程。"深入浅出Tapestry4一书"的源代码是作者为了帮助读者更直观地...

    tapestry官方中文文档

    虽然Tapestry 4的中文文档较少,但提供的《Tapestry4 用户指南》和《Tapestry4 快速启动》是宝贵的参考资料。它们将帮助初学者理解Tapestry的基本概念、组件使用、事件处理等方面的知识。 总的来说,Tapestry 4是...

    Tapestry4的入门资料

    Tapestry4是一款基于Java的Web应用程序框架,它在2000年代初期非常流行,由Apache软件基金会维护。这个框架的主要目标是提供一种高效、易于理解和使用的工具,用于构建动态、数据驱动的Web应用。以下是一些关于...

    MyTapestry4-quickStart.rar_Tapestry4_quickstart tapestry_tapestr

    最后,不要忘记查阅Tapestry4的官方文档,那里有丰富的教程和API参考,对于学习和解决遇到的问题非常有帮助。 总之,这个"MyTapestry4-quickStart"项目为初学者提供了一个实践Tapestry4框架的平台,通过它,你可以...

    Tapestry4书中例子(水果商店)

    - **服务组件**: 为了提供跨组件共享的服务,如数据库访问、会话管理,Tapestry4有服务组件的概念。 4. **部署与运行** - **配置**: 需要配置Tapestry4的应用上下文,指定组件库、应用配置文件等。 - **构建**: ...

    tapestry教程资料文档合集

    Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...

    tapestry源码 api等

    4. **Tapestry MongoDB**: 对MongoDB数据库的支持,让开发者能够利用NoSQL数据库的优势。源码揭示了如何在Tapestry应用中集成MongoDB,进行数据存取操作。 5. **Tapestry-ioc-junit**: 这是Tapestry与JUnit测试框架...

    Tapestry简单入门.rar_java Tapestry_tapestry

    4. **编写第一个页面**:在Tapestry中,一个页面是由一个或多个组件组成的。你需要定义一个类来表示页面,并在HTML模板中声明组件。 接下来,我们转向"tapestry组件.docx",组件是Tapestry的核心组成部分,它们是可...

Global site tag (gtag.js) - Google Analytics