用处:1.方便获取session会话,用来操作数据库
2.用来检验所有映射的配置文件配置是否准确
public class SessionFactoryUtils {
private static SessionFactory sessionFactory;
static {
Configuration cfg=new Configuration().configure("hibernate.cfg.xml");
sessionFactory = cfg.buildSessionFactory();
}
//打开session
public static Session getSession() {
Session session = sessionFactory.getCurrentSession(); //有会话的话,直接拿 (相当于家里有苹果,直接拿)
/*Session session = sessionFactory.openSession();*/ //没有的话,新开一个session (家里没有,从外面拿)
if(session==null) {
session = sessionFactory.openSession();
}
return session;
}
//关闭session
public static void closeSession() {
Session session = sessionFactory.getCurrentSession();
if(session!=null&&session.isOpen()) {
session.close();
}
}
//测试
public static void main(String[] args) {
Session session = SessionFactoryUtils.getSession();
session.beginTransaction(); //打开事务
System.out.println(session.isConnected());
SessionFactoryUtils.closeSession();
System.out.println(session.isConnected());
}
}