最近使用最新的Hibernate,在获取SessionFactory的时候,原来的那种方法已经过时了被提示,不过仍然可以用。原来的写法如下:
Configuration cfg = new Configuration().configure(); SessionFactory factory = cfg.buildSessionFactory(); Session s = factory.openSession(); s.beginTransaction(); //这里是数据库操作代码 s.getTransaction().commit();
4.0以后改为使用ServiceRegistry 注册了。
在刚开始使用ServiceRegistry的时候报异常:
HibernateException: Connection cannot be null when 'hibernate.dialect' not set
是因为使用方法不正确,正确的方法如下:
Configuration cfg = new Configuration().configure(); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry(); SessionFactory factory = cfg.buildSessionFactory(serviceRegistry); Session s = factory.openSession(); s.beginTransaction(); //这里是数据库操作代码 s.getTransaction().commit();