Hibernate Dialect must be explicitly set的异常
?异常是这样
org.hibernate.HibernateException:?? Hibernate?? Dialect?? must?? be?? explicitly?? set
?
发生这样异常的原因有:
?
1).dialect配置有误或忘记配置dialect
MySQL数据库的dialect配置:
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
?
2).忘记写configure().
正确写法:
public? void save(Login login) {
??? Configuration config = new Configuration();
??? SessionFactory sf=config.configure().buildSessionFactory(); Session s=sf.openSession();
??? Transaction t =s.beginTransaction();
??? s.save(login);
??? t.commit();
??? s.close();
}
错误写法:
public? void save(Login login) {
??? Configuration config = new Configuration();
??? SessionFactory sf=config.buildSessionFactory(); Session s=sf.openSession();
??? Transaction t =s.beginTransaction();
??? s.save(login);
??? t.commit();
??? s.close();
}
?
3).数据库表的字段名中有空格或者是关键字,将包含该字段的sql语句放到MS Server的查询分析器,你会发现该字段变
成了蓝色如:record date
?
?直接将Hibernate打印出来的sql语句发送到数据库里执行一下,也是报错,
???
insert into dataanalysis(url, describe, userid, username, record date, id) values ('aa', 'bb', 'cc', 'dd', '2010-01-01', 'abcd123'); ?再运行,OK了
?