当一切都应该干净时,为什么它会向我发送未关闭的连接错误?
Why is it sending me an unclosed connection error when everything should be clean?
我有一个基本的一对一映射。当我第一次尝试使用外键提取信息时,我 运行 程序出现错误 message:ERROR:检测到连接泄漏:关闭池时有 1 个未关闭的连接 jdbc:mysql: //localhost:3306/novabaza?useSSL=false&serverTimezone=UTC
线程异常 "main" java.lang.NullPointerException
在 oto_otm_mtm.Blogic.main(Blogic.java:46)。第二次我 运行 程序总是很顺利。
试图关闭会话然后开始一个新会话,因为我认为问题在于我正在尝试从不存在的数据库中检索数据。没有任何变化。
try {
session.beginTransaction();
session.save(student);
session.save(laptop);
session.getTransaction().commit();
session.close();
session = sf.getCurrentSession();
session.beginTransaction();
Student myStudent = session.get(Student.class, 2);
lpa = myStudent.getLaptop(); /*Eclipse says that the problem is
here though i dont understand why.*/
System.out.println(lpa.getVrsta());
session.close();
} finally {
sf.close();
}
您正在关闭会话,但并未关闭已建立的数据库连接。因此连接泄漏。请关闭数据库连接。这将解决问题。
花絮是在您上面的代码中,将所有语句都放在一个事务中。
我有一个基本的一对一映射。当我第一次尝试使用外键提取信息时,我 运行 程序出现错误 message:ERROR:检测到连接泄漏:关闭池时有 1 个未关闭的连接 jdbc:mysql: //localhost:3306/novabaza?useSSL=false&serverTimezone=UTC 线程异常 "main" java.lang.NullPointerException 在 oto_otm_mtm.Blogic.main(Blogic.java:46)。第二次我 运行 程序总是很顺利。
试图关闭会话然后开始一个新会话,因为我认为问题在于我正在尝试从不存在的数据库中检索数据。没有任何变化。
try {
session.beginTransaction();
session.save(student);
session.save(laptop);
session.getTransaction().commit();
session.close();
session = sf.getCurrentSession();
session.beginTransaction();
Student myStudent = session.get(Student.class, 2);
lpa = myStudent.getLaptop(); /*Eclipse says that the problem is
here though i dont understand why.*/
System.out.println(lpa.getVrsta());
session.close();
} finally {
sf.close();
}
您正在关闭会话,但并未关闭已建立的数据库连接。因此连接泄漏。请关闭数据库连接。这将解决问题。
花絮是在您上面的代码中,将所有语句都放在一个事务中。