现在练习使用hibernate,struts,spring整合,在action中定义了list集合用来存放查询的的结果集对象(persons),在jsp中要使用struts的标签itertor,然后获得每个对象的属性,是这样使用吗?
还有就是查询几次数据库网页打开就会很慢。这是为什么呢?

解决方案 »

  1.   

    什么是查询几次数据库网页打开就会慢呢 ,一般是第一次打开比较慢,因为要编译, 但是后边就会很快的,你的是不是数据很多,建议还是分页吧 用pager-taglib 包很方便的 
      

  2.   

    就是分页显示几条记录,然后点击下一页,多点几次网页就会打开很慢。
    因为下一页还要查询数据库,进行显示。是这样的吧。
    我的是在jsp中使用struts标签进行显示,(就是把数据存在action中的集合中,然后读取进行显示)。
    不知道实际当中是不是这样做的?
      

  3.   

    总共有5个表,我已经吧一对多的fetch设置为lazy了,但是看了看后台,还是要发7到8个sql语句。
      

  4.   


    1、看你sql如何写的(是不是写了太多的嵌套子查询?)
    2、你用的sql还是hql?
    3、是不是数据库资料确实很多笔?是否有分页?
    4、对于非一对一的关系实体,是否有设置lazy属性为true?
      

  5.   

    没有写太多的子查询,就是简单地from 表,
    用的是hql
    有分页,每页显示三条记录,但是每页都要连数据库进行查询。因为会用到其他表的值。比如查询的board的集合,还会用到bord里面的person属性的name。
    对一对多的都设置为了fetchtype=lazy
    还有就是经常会报java.lang.OutOfMemoryError:异常
      

  6.   

    还有想问的是:是不是应该把查询的集合当做action的属性,然后每次请求时,都会查询数据库,将数据保存到list的集合中。
    实际当中是这么干的吗?
    求答疑!
      

  7.   


    把web 服务器的内存设置大一些。还有,你的hibernate看是否有必要配置缓存?
      

  8.   

    最近在练习使用ssh,但是遇到了一些问题很困惑,希望大家能帮忙解答。
    就是在jap中是不是使用struts的标签<struts:property value="board.id"/>进行数据的访问。
    还有在查看的网页源代码中看到很多这些东西。
    com.opensymphony.xwork2.ActionContext.application</td><td>{org.apache.jasper.compiler.TldLocationsCache=org.apache.jasper.compiler.TldLocationsCache@65712a80, org.apache.tomcat.InstanceManager=org.apache.catalina.core.DefaultInstanceManager@33a17727, javax.servlet.context.tempdir=E:\apache-tomcat-7.0.26\apache-tomcat-7.0.26\work\Catalina\localhost\Article01, org.apache.catalina.resources=org.apache.naming.resources.ProxyDirContext@8bfc25c, org.apache.jasper.runtime.JspApplicationContextImpl=org.apache.jasper.runtime.JspApplicationContextImpl@41649a55, .freeer.Application=freeer.ext.servlet.ServletContextHashModel@153bcbc8, freeer.Configuration=freeer.template.Configuration@3781efb9, contextConfigLocation=classpath:beans.xml,
    里面有好多。
    想了想这样会使网页加载很慢,但是又不知道,不用这种办法访问数据,应该用什么办法呢?
    求答疑? 
      

  9.   

    1.查询结果检验:调试,或者在后台运行完了用System.out.println来看有没有数据
    2.前台循环显示在对于的表格下
    代码:
    <s:iterator value="#request.实体" var="info">
                <tr>
                   <td>${info.实体的属性}</td>
                   <td>${info.实体的属性}</td>
                   <td>${info.实体的属性}</td>
             </s:iterator>
    3.info:是变量
    4.request.实体:是后台查询出的结果集放在了request中,前台来获取。
        XXXX.setAttribute("实体",查询结果集);
      

  10.   

    Jsp页面有没有动态包含别的页面,这个也有可能导致访问速度变慢,以前遇到过!
      

  11.   


    进行数据访问的方式多了,用什么标签都不是唯一的,你也可以用jstl标签。