首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate Spring非常慢

Hibernate Spring非常慢
EN

Stack Overflow用户
提问于 2017-12-08 09:43:45
回答 1查看 523关注 0票数 0

我正在用Spring、Hibernate和MySQL构建管理员web项目。当我编写代码列出数据库中所有的摄政者时。它第一次运行非常快,但当我重复加载页面(8-10次)时,我的页面只是保持加载模式,没有停止的迹象。首先,我使用MSSQL,然后我更改为MySQL,没有什么改变,我关闭防火墙,仍然不能工作。

这是我的dispatcher-servlet.xml:

代码语言:javascript
复制
<mvc:resources mapping="/resources/**" location="/WEB-INF/resources/" cache-  period="31556926"/>
<mvc:annotation-driven />
<context:component-scan base-package="com.hinet.storage" />

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.UrlBasedViewResolver" 
      p:viewClass=" org.springframework.web.servlet.view.tiles3.TilesView"/>

<bean id="tilesConfigurer" 
      class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"
      p:definitions="/WEB-INF/tiles/tiles.xml"/>

<bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="location" value="/WEB-INF/database.properties" />
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="packagesToScan" value="com.hinet.storage" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.current_session_context_class">thread</prop>
            <prop key="hibernate.show_sql">false</prop>
            <prop key="configurationClass">org.hibernate.cfg.AnnotationConfiguration</prop>
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.use_sql_comments">true</prop>
            <prop key="hibernate.generate_statistics">true</prop>
        </props>
    </property>
 </bean>

,这是RengencyDAOImpl:

代码语言:javascript
复制
@Repository("regencyDAO")
@Transactional
public class RegencyDAOImpl extends BaseDAOImpl implements RegencyDAO{

    @Override
    public List<Regency> getRegencies() {
        String sql = "from Regency as re where re.isDelete != true";
        Query query = this.openSession().createQuery(sql, Regency.class);
        List<Regency> regencies = query.list();
        return regencies;
    }
}

在过去的几天里,它让我头疼!有人知道造成这个问题的原因吗?

EN

回答 1

Stack Overflow用户

发布于 2017-12-08 11:11:45

我认为你已经耗尽了你的数据源(即打开而不关闭连接)。openSession()是做什么的?我觉得应该像getCurrentSession()一样。如果打开新会话,则应关闭它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47711543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档