您的位置:首页 > 其它

Hibernate4后出现: org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect'

2016-10-18 03:10 441 查看
之前的代码:

package com.entity;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

import org.hibernate.service.ServiceRegistry;

import org.hibernate.service.ServiceRegistryBuilder;

import org.hibernate.tool.hbm2ddl.SchemaExport;

import org.junit.Test;

public class TestStudents {
@Test
public void testschemaExport(){
//创建配置对象:
Configuration config = new Configuration();
//创建服务对象:
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
//生成sessionfactory:
SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);

SchemaExport schemaExport = new SchemaExport(config);
schemaExport.create(true,true);
}

}

注意第注释://创建配置对象:    这个注释后的代码;

Configuration config = new Configuration();

applySettings(cfg.getProperties())是获取hibernate.cfg.xml的配置信息后设置进ServiceRegistryBuilder中,但是在设置之前的cfg(也就是Configuration)没有获取到hibernate.cfg.xml中的信息,所以会出现在运行的时候或出现属性值未设置的情况。

所以现在就好办了只要在applySettings(cfg.getProperties())之前获取hibernate.cfg.xml的信息并设置到ServiceRegistryBuilder中就行,这样ServiceRegistryBuilder就可以通过这些信息来构建ServiceRegistry。可以通过Configuration的configure()方法获取的hibernate.cfg.xml中的配置信息。
修改后的代码:
package com.entity;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

import org.hibernate.service.ServiceRegistry;

import org.hibernate.service.ServiceRegistryBuilder;

import org.hibernate.tool.hbm2ddl.SchemaExport;

import org.junit.Test;

public class TestStudents {
@Test
public void testschemaExport(){
//创建配置对象:
Configuration config = new Configuration().configure();
//创建服务对象:
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
//生成sessionfactory:
SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);

SchemaExport schemaExport = new SchemaExport(config);
schemaExport.create(true,true);
}

}

这样就对了   

哈哈!  附上成果图!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate 注释
相关文章推荐