eclipse中测试Hibernate异常报'hibernate.dialect' must be set when no Connection avalable
初学Hibernate遇到的异常贴出来
1 SLF4J: The requested version 1.6 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8] 2 SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details. 3 log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). 4 log4j:WARN Please initialize the log4j system properly. 5 log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 6 Exception in thread "main" org.hibernate.HibernateException: 'hibernate.dialect' must be set when no Connection avalable 7 at org.hibernate.dialect.resolver.DialectFactory.buildDialect(DialectFactory.java:107) 8 at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:134) 9 at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119) 10 at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115) 11 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339) 12 at com.test.LoginDAO.<init>(LoginDAO.java:19) 13 at com.test.Test.main(Test.java:13)
1.2.3.4.5行可以忽略,大概意思是说日志记录的jar包没有装好。
看第6行报'hibernate.dialect' must be set when no Connection avalable 意思是说报要连接必须设置'hibernate.dialect' ,这个对我这中菜鸟真是有误导,对其他菜鸟也一样
可以转换下思路,里面有connection 也就是说跟连接有关系,Hibernate是连接数据库的,所以看看数据库状态,一看连接不上。问题找出来了,好吧,把数据库弄好就行了。
问题:报错 报'hibernate.dialect' must be set when no Connection avalable
原因:数据库没有准备好
解决方法:把数据库设置好。(这一般都是因为自己电脑断电引起的数据库监听程序出问题,哎,贱人就是矫情。)
重新启动数据库的方法:
1、进入CMD,执行set ORACLE_SID=orcl,确保连接到正确的SID; 2、运行sqlplus "/as sysdba" SQL>shutdown immediate 停止服务 SQL>startup 启动服务,观察启动时有无数据文件加载报错,并记住出错数据文件标号 SQL>shutdown immediate 再次停止服务 SQL>startup mount SQL> recover datafile 恢复出错的数据文件(不是很常用) SQL>shutdown immediate 再次停止服 SQL>startup 启动服务,此次正常。
一般这几步下来能搞的,不行的话多重复几次关闭和开启数据库。
坚持做好每件事,然后再做下一件。