此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【aorons】截止到2008-07-01 23:22:03的历史汇总数据(不包括此帖):
发帖的总数量:8                        发帖的总分数:190                      
结贴的总数量:4                        结贴的总分数:80                       
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:4                        未结的总分数:110                      
结贴的百分比:50.00 %               结分的百分比:42.11 %                  
无满意结贴率:0.00  %               无满意结分率:0.00  %                  
楼主加油

解决方案 »

  1.   

    每次都会新建一个session,建session是需要时间的.
      

  2.   

    super.getSession().close();  你这是获取一个session再关闭啊 这样关闭有什么用?浪费系统资源? 
    Hib 和 spring 你根本没必要操心数据库连接关闭 
    你要是一定要关闭应该是这个
    getCurrxxxSession()  具体方法名我忘了C开头Session结尾你按个"."就应该找的到
    字面意思就是获取现有session
      

  3.   

    典型的连接没有关闭,连接毫尽的现象.不知道你继承的类是怎么写的,但是如果采用spring + Hibernate的dao,你根本无需要关心session的开启的销毁
    调用其中的getHibernateTemplate().就可以具有hibernate 增,删,改等功能了
      

  4.   

    别用HIBERNATE默认的连接池,用别的连接池结合起来用应该就可以了.比如在HIBERNATE里配个C3P0
      

  5.   

    在applicationContext.xml中配置的c3p0,要把c3p0-0.9.1-pre6.jar放到classpath中 
    1.sqlserver2000 <?xml version="1.0" encoding="UTF-8"?> 
    <beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 
    <!-- Hibernate SessionFactory --> 
        <bean id="sessionFactory" 
            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
            <property name="dataSource"> 
                <ref local="dataSource" /> 
            </property> 
            <property name="mappingResources"> 
                <list> 
                    <value>com/oy/image/model/LoginUser.hbm.xml </value> 
                </list> 
            </property> 
            <property name="hibernateProperties"> 
                <props> 
                    <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect </prop> 
                    <prop key="hibernate.show_sql">true </prop> 
                    <prop key="hibernate.generate_statistics">true </prop> 
                    <prop key="hibernate.connection.release_mode">auto </prop> 
                    <prop key="hibernate.autoReconnect">true </prop> 
                </props> 
            </property> 
        </bean> <bean id="dataSource" 
            class="com.mchange.v2.c3p0.ComboPooledDataSource" 
            destroy-method="close"> 
            <property name="driverClass"> 
                <value>com.microsoft.jdbc.sqlserver.SQLServerDriver </value> 
            </property> 
            <property name="jdbcUrl"> 
                <value>jdbc:microsoft:sqlserver://localhost:1433;databaseName=users </value> 
            </property> 
            <property name="user"> 
                <value>bruce </value> 
            </property> 
            <property name="password"> 
                <value>bruce </value> 
            </property> <!--连接池中保留的最小连接数。--> 
            <property name="minPoolSize"> 
                <value>5 </value> 
            </property> <!--连接池中保留的最大连接数。Default: 15 --> 
            <property name="maxPoolSize"> 
                <value>30 </value> 
            </property> <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 --> 
            <property name="initialPoolSize"> 
                <value>10 </value> 
            </property> <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --> 
            <property name="maxIdleTime"> 
                <value>60 </value> 
            </property> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> 
            <property name="acquireIncrement"> 
                <value>5 </value> 
            </property> <!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements 
      属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。 
      如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0--> 
            <property name="maxStatements"> 
                <value>0 </value> 
            </property> <!--每60秒检查所有连接池中的空闲连接。Default: 0 --> 
            <property name="idleConnectionTestPeriod"> 
                <value>60 </value> 
            </property> <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --> 
            <property name="acquireRetryAttempts"> 
                <value>30 </value> 
            </property> <!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效 
      保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试 
      获取连接失败后该数据源将申明已断开并永久关闭。Default: false--> 
            <property name="breakAfterAcquireFailure"> 
                <value>true </value> 
            </property> <!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的 
      时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable 
      等方法来提升连接测试的性能。Default: false --> 
            <property name="testConnectionOnCheckout"> 
                <value>false </value> 
            </property> 
        </bean> 
    <bean id="imageDao" name="imageDao" 
      class="com.oy.image.dao.hibernate.ImageDaoHibernate" abstract="false" 
      lazy-init="default" autowire="default" dependency-check="default"> 
      <property name="sessionFactory"> 
      <ref bean="sessionFactory" /> 
      </property> 
    </bean> 
    <bean id="imageManager" name="imageManager" 
      class="com.oy.image.service.impl.ImageManagerImpl" abstract="false" 
      lazy-init="default" autowire="default" dependency-check="default"> 
      <property name="imageDao"> 
      <ref bean="imageDao" /> 
      </property> 
    </bean> </beans>