📄 inithibernate.java
字号:
package edu.jnestore.plugin;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.cfg.Configuration;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
/**
* InitHibernate是对Hibernate进行初始化的Struts插件
*/
public class InitHibernate implements PlugIn {
private Context ctx;
private SessionFactory sessionFactory;
/*
* 插件销毁方法
*/
public void destroy() {
if (ctx != null) {
try {
// unbind JNDI 节点
ctx.unbind("HibernateSessionFactory");
} catch (NamingException e) {
e.printStackTrace();
}
}
if (sessionFactory != null) {
try {
// 关闭sessionFactory
sessionFactory.close();
} catch (HibernateException e) {
e.printStackTrace();
}
sessionFactory = null;
}
}
/*
* 插件初始化方法
*/
public void init(ActionServlet servlet, ModuleConfig config)
throws ServletException {
try {
// 获取SessionFactory的实例
sessionFactory =
new Configuration().configure().buildSessionFactory();
} catch (HibernateException ex) {
throw new RuntimeException(
"Exception building SessionFactory: " + ex.getMessage(),
ex);
}
try {
// 取得容器上下文
ctx = new InitialContext();
// 将sessionFactory bind到JND树中
ctx.bind("HibernateSessionFactory", sessionFactory);
} catch (NamingException ex) {
throw new RuntimeException(
"Exception binding SessionFactory to JNDI: " + ex.getMessage(),
ex);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -