我需要在我网站的几乎每个页面都连接到我的数据库。
我的第一页是登录,因此我打算启动SessionFactory
并将其保持打开状态,以便以后在其他页面中使用。
我的问题是:如何将变量声明为全局,以便我可以在其他类中使用它?
public SessionFactory StartDatabaseConnection() {
SessionFactory factory;
try {
factory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Failed to create sessionFactory object." + ex);
throw new ExceptionInInitializerError(ex);
}
return factory;
}
我现在如何在这里使用它? factory doesn't exist in context
private Integer addGeneralSetup(GeneralSetup generalSetup) {
Session session = factory.openSession();
Transaction tx = null;
Integer generalSetupID = null;
try{
tx = session.beginTransaction();
generalSetupID = (Integer) session.save(generalSetup);
tx.commit();
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally {
session.close();
}
return generalSetupID;
}
答案 0 :(得分:0)
我认为最好的做法是使用singleton spring bean并在需要时注入依赖项。
Spring提供了两种方法来实现这一目标: 1. Spring内置了可以使用的模板 例如:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
&#13;
<bean id="customBean" class="com.learn.custom.CustomBean" />
&#13;