📄 inithibernateplugin.java
字号:
package com.huangdong.dbwebdemo;
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;
/**
* @author HD
*/
public class InitHibernatePlugin implements PlugIn {
/**
* 插件所获取的容器上下文实例
*/
private Context ctx;
/**
* Hibernate初始化好的SessionFactory
*/
private SessionFactory sessionFactory;
/*
* 插件销毁方法
*/
public void destroy() {
if (ctx != null) {
try {
// unbind JNDI 节点
ctx.unbind("HibernateSessionFactory");
} catch (NamingException e) {
e.printStackTrace();
}
}
if (this.sessionFactory != null) {
try {
// 关闭sessionFactory
sessionFactory.close();
} catch (HibernateException e) {
e.printStackTrace();
}
this.sessionFactory = null;
}
}
/*
* 插件初始化方法
*/
public void init(ActionServlet servlet, ModuleConfig config)
throws ServletException {
try {
// 获取SessionFactory的实例
this.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", this.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 + -