下面是JSP项目中,hibernate技术中的一个代码,帮忙说说这个代码是做什么用的
package cn.myexam.hibernate;
import javax.naming.Context;
import javax.naming.InitialContext;
import
javax.naming.NamingException;
import
javax.servlet.ServletException;
import
org.hibernate.HibernateException;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class InitHibernate implements PlugIn {
private Context ctx;
public void destroy() {
if (ctx != null) {
try {
ctx.unbind("HibernateSessionFactory");
} catch (NamingException e) {
e.printStackTrace();
}
}
if (HibernateSessionFactory.getSessionFactory() != null) {
try {
HibernateSessionFactory.getSessionFactory().close();
} catch (
HibernateException e) {
e.printStackTrace();
}
}
}
public void init(ActionServlet servlet, ModuleConfig config)
throws
ServletException {
try {
HibernateSessionFactory.rebuildSessionFactory();
if(HibernateSessionFactory.getSessionFactory()!=null)
System.out.println("SessionFactory has be successfully builded!");
} catch (HibernateException ex) {
throw new
RuntimeException(
"Exception building SessionFactory: " + ex.getMessage(),
ex);
}
try {
ctx = new InitialContext();
ctx.bind("HibernateSessionFactory", HibernateSessionFactory.getSessionFactory());
} catch (NamingException ex) {
throw new RuntimeException(
"Exception binding SessionFactory to JNDI: " + ex.getMessage(),
ex);
}
}
帮忙详细说说每个函数是做什么用的
------解决方案--------------------这个应该是在写一个过滤器,但是具体哪个方法做什么我也不是很清楚。你可以看一下过滤器相关的知识
------解决方案--------------------初始化啊,destory()销毁当前的HibernateSessionFactory
init()重新实例化一个SessionFactory绑定到jndi上以供使用。
------解决方案--------------------hibernate链接数据库的工程类
------解决方案--------------------public void destroy() {//这个方法销毁HibernateSessionFactory
if (ctx != null) {
try {
ctx.unbind("HibernateSessionFactory"); //从上下文中解除原来的HibernateSessionFactory如果存在的话
} catch (NamingException e) {
e.printStackTrace();
}
}
if (HibernateSessionFactory.getSessionFactory() != null) {
try {
HibernateSessionFactory.get