tomcat配置的数据源
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="500" maxIdle="200"spring
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="hibernateProperties">
       <props>
      <prop key="hibernate.connection.datasource">java:comp/</prop>
      <prop key="hibernate.jdbc.fetch_size">80</prop>
                   <prop key="hibernate.jdbc.batch_size">30</prop> 
      <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
      <prop key="hibernate.cglib.use_reflection_optimizer">true</prop> 
       </props>
 </property>其他没什么特别的配置
第一次查询的时候很慢 不是缓存的问题 第一个sql是count很慢 紧接着第二个sql是list正常 然后刷新几次都正常 过一段时间再刷新页面又慢了 像是慢在获取连接上面 求指点 谢谢

解决方案 »

  1.   

    慢的因有很多,而且你描述得不详细,首先你写个单元测试看,如果测试单个方法正常的话,你还可以写一个从web 层的action到hibernate 的dao层的测试(strut1的web层测试不太好写,也能实现,我不再赘林述了),则是你在使用spring管理hibernate时有不适,我以前也有过种情况,你可以把配置文件放在类路径下(如果你现在把spring的配置文件在web-inf目录上的话就这样做),再个hibernate交给spring管理后,spring窗口对象g不能老是用 Applicationcontext ctx= new .....();
    也就是说你最好将struts的bean将给 spring 管理,从不使用Application ctx =new ...();
    做这种测试时,你最好把任务管理器开启查看内存状态.测试出真理.
      

  2.   

    首先你在使用框架的时候,一旦数据量很大,业务逻辑相对烦琐,那么消耗的时间肯定会很长,这就是OOP的缺点啊。如果受不了这个缺点的话就使用硬编码呗。