gpt4 book ai didi

java - hibernate 不关闭连接

转载 作者:可可西里 更新时间:2023-11-01 07:40:06 25 4
gpt4 key购买 nike

我正在使用 Hibernate + jersey Rest 和 Mysql 作为数据库的后端。在 Hibernate 中使用 cp3 池进行连接,但一段时间后它创建了如此多的空闲连接并卡住了。我的配置是:

enter image description here enter image description here

package com.appname.hibernate.util;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
private static SessionFactory sessionFactory;

static {
try {
Configuration configuration = new Configuration().configure();

sessionFactory = configuration.buildSessionFactory();
} catch (HibernateException he) {
System.err.println("Error creating Session: " + he);
he.printStackTrace();
throw new ExceptionInInitializerError(he);
}
}

public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
////////////////////// INSIDE DAO ///////////////////////////

private Session getSession() {

SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session;
try {
session = sessionFactory.getCurrentSession();
} catch (org.hibernate.HibernateException he) {
session = sessionFactory.openSession();
}
return session;
}

public Users regsiterUser(Users users) throws Exception {

Session session = null;

try {
session = getSession();
Transaction transaction = session.beginTransaction();
session.saveOrUpdate(users);
transaction.commit();
return users;

//Using context session that is why I am not closing session
} catch (Exception e) { throw e; }
}

我从我的 Controller 调用这个 DAO 函数,我在 DAO 层内进行事务和 session 。请帮助我我正在尝试解决这个问题但没有得到任何解决方案请看看上面的配置和代码有什么问题......

提前致谢......

最佳答案

我认为这个 session = sessionFactory.openSession(); 应该在使用后手动关闭,因为它不是由在使用后释放资源的协调器管理的。

关于java - hibernate 不关闭连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18566457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com