2016-10-06 19 views
-1

これは私のシナリオです。 私は基本的なログインログアウトのためにspring mvcを実装しました。 10個のmysql接続を使用すると、mysqlから新しい接続が得られないため、ログインできません。ハイバーネイトとバネで10回接続した後にMySQLサーバが接続しない

私は、MySQL接続を取得するために休止状態を使用しています。

誰かお手伝いできますか? [これは構成です] [1]

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> 

    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false" /> 
    <property name="username" value="root" /> 
</bean> 

<!-- Hibernate session factory --> 
<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="mappingResources"> 
     <list> 
      <value>schema.hbm.xml</value> 
     </list> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
      <prop key="hibernate.c3p0.timeout">10</prop> 
      <prop key="hibernate.c3p0.min_size">5</prop> 
      <prop key="hibernate.c3p0.max_size">100</prop> 
     </props> 
    </property> 
</bean> 

<bean id="dao" class="com.tavant.DAO.TestDAO"> 
    <property name="sessionFactory" ref="sessionFactory"></property> 
</bean> 

編集:

public User findByUserName(String userName) { 
    List<User> users = new ArrayList<User>(); 

    users = getSessionFactory().openSession().createQuery("from User where userName=?") 
      .setParameter(0, userName).getResultList(); 

    if (users.size() > 0) { 
     return users.get(0); 
    } else { 
     return null; 
    } 
}` 
+1

をあなたのコードは、同様にしてください示しすることができ、設定は十分ではありません。そして、リンクをしないでください。 –

+0

ユーザーを確認するための設定とコードを追加しました。 –

+0

'openSession'を使用しないでください。' getCurrentSession'を使用してください。もしあなたが 'openSession'を使うと、あなたは春の範囲外のセッションを開き、あなた自身でそれを管理しなければなりません。 'getCurrentSession'があなたのtx設定が間違っていることを示す例外を与えた場合。 –

答えて

0

てみてください:

Session session = getSessionFactory().openSession(); 
users = session.createQuery("from User where userName=?").setParameter(0, userName).getResultList(); 

    if (users.size() > 0) { 
     return users.get(0); 
    } else { 
     return null; 
    } 

session.close(); 
関連する問題