Start Hibernate

     虽然学习Struts2还只是刚刚开了个头,但这丝毫不能阻挡我学习Hibernate。于是,在看了几天的Hibernate后,今天早上终于开始尝试着写下第一个Hibernate程序,整个过程还算比较顺利,只遇到了三个问题。呵呵~~~其实这要归功于 HibernateSynchronizer 这个插件的功劳,让我没有手动写hibernate.cfg.xml跟其他的*.hbm.xml这些配置文件,既节约了时间,也避免了很多错误。不过自己还是清楚这两个配置文件是无论怎样都要弄懂的,只是第一次不想给自己太大的难度,太过打消自己的积极性。

     前面提道整个过程中遇到的三个问题,google一下,貌似好多人都遇到过。写个小结,一来再给自己复习一下,二来以后实在遇到了还可以翻出来参考一下。当然,如果能够帮到其他出遇到相同问题的人那是再好不过了。

  1. 点击run as java application 之后,弹出一个对话框,要我选择 java application ,如下图所示,

     试着在其中选了几个,不过都没成功。觉得这样试肯定是没有结果的,于是找到 run configurations 选项,将其中的 project 和 main class 手动设置了一下,然后点击该对话框上的 run,程序终于启动,开始执行。

  2. 程序运行之后,提示 “SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder”

其实我对里面说的什么StaticLoggerBinder是什么东西完全不清楚,不过毕竟还是读了几年英语,所以认得几个单词,看懂了是因为找不到那个东西,估计是缺少什么包之类的。于是在自己的导入的hibernate的jar包中找了找,发现有个叫 slf4j-api-1.5.2.jar 包。仔细一看,居然是个api的包,猜想应该就是这里的问题了,于是下了叫 slf4j-nop-1.5.2.jar 的包导入到project中,再执行,问题解决。

ps:前面说的那个 slf4j-nop-1.5.2.jar 包也传了上来,放在下面的文件中。

  3. 再接下来,就是报出下面这个错误了: “org.hibernate.MappingNotFoundException: resource: Hibernate-Demo/Person.hbm.xml not found” ,意思很明显,又是找不到什么东西,结合之前学习Struts2的经验,一猜就是配置文件中出问题了。然后就在hibernate.cfg.xml中的<mapping  />标签中改来改去,也没改成功,没办法,在hibernate带的那些sample中找来找去,貌似发现了一点什么,于是试着把Person.hbm.xml这个mapping文件放到跟Person类所在的同一个包中,也就是 com.javaeye.rennyit.demo.pojo 这个包,然后再把<mapping />标签改成 <mapping resource="com/javaeye/rennyit/demo/pojo/Person.hbm.xml" /> ,再执行问题解决。个人觉得这个配置文件并非一定要放到与对应的POJO相同的包中,但后面的<mapping />标签一定要指向正确的路径,而且路径中不能用定义包的那样用"."来分开层次,而需要使用"/"。

你可能感兴趣的:(thread,xml,Hibernate,Google)