您的位置:首页 > 数据库

使用Hibernate时的一些错误总结

2013-11-23 11:00 337 查看
最近在学习用Hibernate,老师讲的好快,更多的只有自己看,自己弄,中间遇到了不少困难,这里主要总结一下练习中出现的一些报错及解决方法。

 #CSDN@CSU-Max

1、在使用HQL进行数据查询的时候,使用的是映射文件中的类名,而不是传统JDBC中使用的表名。

如:

//HQL写法,此处User是映射的类名
select u from User as u where u.username=? and u.password=?;

//普通JDBC,此处user是表名
select * from user where username=? and password=?


2、报错:java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder

       Hibernate使用的SLF4J API来记录日志,所以在Hibernate的lib包中,不提供Log4J的jar包,而大部分框架依旧使用的是Log4J记录日志,在使用中会导致冲突。

      这里我的解决办法是:

                第一步:在项目中加入Log4J的包,比如log4j-1.2.8.jar。

                第二步:下载SLF4J ,解压后将slf4j-log4j.xxx.jar这个包加到项目中去,就可以解决问题了。

      #SLF4J下载地址:http://www.slf4j.org/download.html

3、报错:entity class not found

      但是检查代码,我们发现,相应的类确实存在,这可能是我们在Hibernate配置文件中写错了,检查hbm.xml中的class对应的类名和实体的路径是否一致,

      注意!!!!此处的路径名用的是"/",而不是"."。

<!--不要想当然写成com.csu.bean.User.hbm.xml-->
<mapping resource="com/csu/bean/User.hbm.xml" />

4、在Hibernate中添加、删除、修改一个对象时,数据库中木有改变。(这个是同学遇到的,后来我帮他找出来了)
     没有使用自动的HIbernate事务处理,则需要我们在执行添加、修改、删除之后要显式的提交事务,这样操作才会在数据库中执行。

         #CSDN@CSU-Max 
  欢迎转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息