这几天做毕设,用到Hibernate,发现buildSessionFactory方法,上网找资料得到的答案如下:
public void test() { Configuration cfg = new Configuration(); cfg.configure(); ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry(); SessionFactory sf = cfg.buildSessionFactory(sr); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); User user = new User(); user.setBirthday(new Date()); user.setName("neal"); session.persist(user); tx.commit(); session.close(); System.out.println("end"); }
但是坑爹的是ServiceRegistryBuilder也是过时的,因此可以做以下处理:
private static SessionFactory buildSessionFactory() { try { Configuration configuration = new Configuration().configure(); ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); return configuration.buildSessionFactory(serviceRegistry); } catch (Throwable ex) { System.out.println("创建SessionFactory时出错!"+ex); throw new ExceptionInInitializerError(ex); } }
留坑,过些天再研究Hibernate源码