没有设置方言,hibernate.cfg.xml里面加上
<property name="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</property>
net.sf.hibernate.dialect.MySQLDialect改成你自己的数据库的方言类,hibernate提供的
<property name="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</property>
net.sf.hibernate.dialect.MySQLDialect改成你自己的数据库的方言类,hibernate提供的
错误原因:其实并不是你没有对dialect进行设置,而是你在使用hibernate的时候,没有调用配置文件,导致系统不能读出dialect信息。
解决办法:
方法一: Configuration config = new Configuration();
SessionFactory sf=config.configure().buildSessionFactory();
Session s=sf.openSession();
而不是:(注意有颜色部分)
Configuration config = new Configuration();
SessionFactory sf=config.buildSessionFactory();
Session s=sf.openSession();方法二:
写一个 hibernate.properties文件 放在src目录中,基本内容如下:hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.password=sa
hibernate.connection.url=jdbc\:mysql\数据库url
hibernate.connection.username=root
hibernate.dialect=org.hibernate.dialect.MySQLDialect
呵呵
这也是看别人的
不过真的解决了问题哦!
15:45:27,453 ERROR HibernateUtil:33 - Initial SessionFactory creation failed.
org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:426)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:128)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2073)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1298)
at org.cat.HibernateUtil.<clinit>(HibernateUtil.java:27)
at org.apache.jsp.cat_jsp._jspService(cat_jsp.java:53)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Unknown Source)
<session-factory>
<property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate_session</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="com/bjsxt/hibernate/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
上面的回复还是没有解决我的问题!!!!!!!!!!!!!!!!!!!!!!!!
大哥们帮忙看看是什么原因!!!!!!!!!!!!!!!!
同意angel_167811
(天使想飞)
Configuration config = new Configuration();
SessionFactory sf=config.configure().buildSessionFactory();
Session s=sf.openSession();
而不是:(注意有颜色部分)
Configuration config = new Configuration();
SessionFactory sf=config.buildSessionFactory();
Session s=sf.openSession();