创建单例模式SessionFactory
package cn.itcast.test;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static Configuration cfg;
private static SessionFactory sf;
static
{
try {
cfg = new Configuration().configure();
sf = cfg.buildSessionFactory();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static SessionFactory getSessionFactory(){
return sf;
}
}
获得session
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import demo.entity.User;
public class Test {
public static void main(String[] args) {
SessionFactory factory = HibernateUtil.getSessionFactory();
Session session = factory.getCurrentSession();
User user = new User();
user.setUsername(”12345”);
user.setPassword(”56789”);
user.setNickname(”ybh”);
Transaction transaction = null;
try {
transaction = session.beginTransaction();
session.save(user);
//session.delete(user);
//User tmp = session.find(User.class, 1);
//session.update(user);
transaction.commit();
} catch (Exception e) {
if (transaction != null) {
transaction.rollback();
}
e.printStackTrace();
}
}
}
通过HibernateUtil将所有的SessionFactory的生成方法封装,实现了SessionFactory的单例模式使用。