我已经使用 Struts2 和 Hibernate 制作了一个应用程序。但现在我面临一个问题。第一次浏览我的项目页面,我的数据库中的所有数据都将正确显示。但是,如果我继续浏览我的页面,那么几分钟/小时后,我将无法在我的 html 页面中看到数据库表数据。(我的 DAO 类无法提供表值并抛出类似错误
Exception in getSubjects() :org.hibernate.exception.JDBCConnectionException: could not execute query
)或者即使我没有触摸我的应用程序(即空闲),几分钟后如果我来浏览我的数据,那么我也会遇到同样的错误
Exception in getSubjects() :org.hibernate.exception.JDBCConnectionException: could not execute query
。
我在主题列中收到一个空白数据,并且在下一次单击时慢慢地我丢失了所有数据,并且休眠对所有列表都抛出了相同的错误。
问题: 有时我的 DAO 正在返回列表,有时它没有返回列表
这可能是什么原因?请帮我解决这个问题。我花了很多时间制作了这个应用程序。
来自 My SubjectdetailsDAO.java 的方法(我遇到上述错误的方法)
` public List getSubjects(String subjectname)
{
List list=null;
try{
session = sessionFactory.openSession();
list=session.createCriteria(Subjectdetails.class).add(Expression.like("subjectName", "%" + subjectname + "%")).list();
}catch (Exception e) {
System.out.println("Exception in getSubjects() :" + e);
} finally {
try {
session.flush();
session.close();
} catch (Exception e) {
System.out.println("Exception In getSubjects Resource closing :" + e);
}
}
return list;
} `
HibernateUtil.java
` package v.esoft.connection; import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
return new AnnotationConfiguration().configure().buildSessionFactory();
}
catch (Throwable ex)
{
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutdown() {
// Close caches and connection pools
getSessionFactory().close();
}
}`
休眠.cfg.xml
` <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="vbsofwaresession">
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">ashutosh</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/vbsoftware</property>
<property name="hibernate.connection.username">ashutosh</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.search.autoregister_listeners">false</property>
<property name="hibernate.search.default.directory_provider">filesystem</property>
<mapping class="v.esoft.pojos.Themes" />
<mapping class="v.esoft.pojos.Usertype" />
<mapping class="v.esoft.pojos.Login" />
<mapping class="v.esoft.pojos.Coverdetails" />
<mapping class="v.esoft.pojos.Editiondetails" />
<mapping class="v.esoft.pojos.Bookdetails" />
<mapping class="v.esoft.pojos.Soldbookdetails" />
<mapping class="v.esoft.pojos.Languagedetails" />
<mapping class="v.esoft.pojos.Locationdetails" />
<mapping class="v.esoft.pojos.Subjectdetails" />
</session-factory>
</hibernate-configuration>
`