Hibernate错误之org.hibernate.HibernateException : 'hibernate.dialect' must be set when no Conne

来源:互联网 发布:管理顾客的软件 编辑:程序博客网 时间:2024/04/28 08:59
org.hibernate.HibernateException : 'hibernate.dialect' must be set when no Connection available
       at org.hibernate.dialect.resolver.DialectFactory.buildDialect(DialectFactory.java:106)
       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:152)
       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2833)
       at org.hibernate.cfg.Configuration.buildSettings( Configuration.java:2829)
       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840)
       at com.hibernate.helloapp01.BusinessServise.<clinit>(BusinessServise.java:21)
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: org.hibernate.HibernateException: 'hibernate.dialect' must be set when no Connection available
       at org.hibernate.dialect.resolver.DialectFactory.buildDialect(DialectFactory.java:106)
       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:152)
       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2833)
       at org.hibernate.cfg.Configuration.buildSettings( Configuration.java:2829)
       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840)
       at com.hibernate.helloapp01.BusinessServise.<clinit>(BusinessServise.java:21)


编程时出现这种错误的原因如下:
1、最明显的原因,在配置文件中没有设置Dialect;
2、第二个原因,和编程时采用哪种配置文件有关系,hibernate有两种配置文件:一种是XML格式的,另一种是*.properties文件格式,你可以采用这两种配置文件中的任意一种,但是要注意的是在编写代码时是有区别的
在java业务层代码中,
Configuration config = new Configuration();
                      config. addClass(Customer.class);
原因就在于上面要你注意的红色代码,当我们采用XML文件作为配置文件的时候,定义Configuration对象是不能采用这种形式的,应该改为如下形式:
Configuration cfg=new Configuration().configure();
将该代码改了之后再运行,一切OK。反之,如果你采用properties格式的文件,那么代码就应该不用改动了。建议使用XML文件,比较规范,便于阅读和管理。

0 0
原创粉丝点击