Hibernate4.1.4 获取SessionFactory

解决hibernate异常:Connection cannot be null when 'hibernate.dialect' not set



最近使用最新的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();

猜你喜欢

转载自empirel.iteye.com/blog/1582358