日期:2014-05-16 浏览次数:20522 次
注意:
<property name="hibernate.connection.release_mode">auto</property>
?
Transaction t = session.beginTransaction(); // Obtain a new JDBC connection, start transaction
?
?
session.flush();??? // Only for last transaction in conversation
t.commit();???????? // Also return JDBC connection
session.close();??? // Only for last transaction in conversation
?
于是我又分别循环调用getSession().createQuery("from Users");getHibernateTemplate().find( "FROM Users);
?
?
?
Query query = this.getSession().createQuery(queryString.toString());
?
每刷新一次它得到了一个新连接,而不是把以前的连接重新激活使用
?
Java代码
SessionFactory sf = new Configuration().configure().buildSessionFactory();? ?
Session session = sf.openSession();??
?
每次openSession()获得一个session就建立了一条数据库连接,一个session其实就对应着一条连接?
??????? SessionFactory sf = new Configuration().configure().buildSessionFactory();
? ? ? ? Session session = sf.openSession();
?
?
org.hibernate.Session s = org.trundle.db.HibernateUtils.getNewSession(); s.createQuery("from Unit").list //没有关闭连接s.close();
org.hibernate.Session s = org.trundle.db.HibernateUtils.getNewSession();
s.beginTransaction();
s.createQuery("from Unit").list();
org.hibernate.Session s = org.trundle.db.HibernateUtils.getNewSession();
s.beginTransaction();
s.createQuery("from Unit").list();
s.close();
hibernate session在处理查询的时候就算没有显式的s.close()也会自动将连接放回连接池。 但是如果包含事务处理,那么如果事务没有结束或者连接不关闭,那么就出现了连接被快速消耗的情况。 本次测试环境:MYSQL 4.0.X tomcat 4.1 JDK1.4 Hibernate 3.1.3 proxool 0.8.0连接池