hibernate MyEclipse 自动生成配置文件遇到的Exception

java.lang.ExceptionInInitializerError
  com.sonic.HibernateUtil.<clinit>(HibernateUtil.java:14)
  com.sonic.struts.action.LoginAction.execute(LoginAction.java:54)
  org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
  org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
  org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
  org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
  javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
  javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
跟踪到
  com.sonic.HibernateUtil.<clinit>(HibernateUtil.java:14)
  com.sonic.struts.action.LoginAction.execute(LoginAction.java:54)
  分别是
  HibernateUtil中:
  throw new ExceptionInInitializerError(ex);
  LoginAction中:
  Session session = HibernateUtil.Session();   

今天野猪看Hibernate时,跟着书上做小例子,是利用MyEclipse7.0自带的Hibernate,创建java project 自动生成配置文件,但是就出现了hibernate,java.lang.ExceptionInInitializerError错误!很头疼,查了好久,感觉配置文件没有写错,位置也没有放错,jar文件也没有错,但是就是报这个错,弄了很久,感觉自动生成不是很爽,问题也没有解决,所以晚上的时候就想放弃了,采用了原来手写的方法,就在手写的测试成功的时候,突然想到是不是微软的那三个jar文件的问题,然后就又试了一次,把三个jar文件换成了JTDS,结果就好了!既气愤,又高兴!都哎……只能说自己不长记性!下次一定要注意!
但是这个问题解决了,又出现问题了:
953 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 170, SQLState: 37000
953 [main] ERROR org.hibernate.util.JDBCExceptionReporter - 第 1 行: '.123' 附近有语法错误。
953 [main] INFO org.hibernate.event.def.DefaultLoadEventListener - Error performing load command
org.hibernate.exception.SQLGrammarException: could not load an entity: [com.yin.hibernate.Guestbook#3]
 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
 at org.hibernate.loader.Loader.loadEntity(Loader.java:1899)
 at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:71)
 at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:65)
 at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3062)
 at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:434)
 at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:415)
 at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:165)
 at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:223)
 at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:126)
 at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:906)
 at org.hibernate.impl.SessionImpl.get(SessionImpl.java:843)
 at org.hibernate.impl.SessionImpl.get(SessionImpl.java:836)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)
 at $Proxy0.get(Unknown Source)
 at com.yin.hibernate.Test.main(Test.java:23)
123是用户名和密码!怎么就会有错呢?测试的程序我确信没有错!查了半天,突然间想到:***.hbm.xml(自动生成的)中有:
<class name="com.yin.hibernate.Guestbook" table="guestbook" schema="123" catalog="db_ajax">
然后把其改成:
 <class name="com.yin.hibernate.Guestbook" table="guestbook">
在运行刚才的测试程序就没有问题了!
总之,问题总算解决了,但是还是感觉手动配置比较好,不是很习惯这种自动生成的~不管喜欢那种,重要的是问题解决了,就是时间上有点长了,下次注意!
野猪!下次不能再犯同样的错误了!听见没!

你可能感兴趣的:(Hibernate,职场,休闲)