1.29使用hibernate链接oracle数据库出现问题并解决

Hibernate 专栏收录该内容
1 篇文章 0 订阅

开发环境:

win7 64bit 

 myeclips2014   新建java project se-1.6   

oracle 11g


1、jar包问题

报出错误:

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]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.

解决方案:

网上下载slf4j-api-1.6.1替换slf4j-api-1.5.8错误消失


2、log4j.properties配置问题

报出警告:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

解决方案:

src文件夹添加log4j.properties文件并复制以下代码

# Configure logging for testing: optionally with log file
log4j.rootLogger=WARN, stdout
# log4j.rootLogger=WARN, stdout, logfile


log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n


log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n



3、方言问题:

刚创建hibernate后默认是:

<property name="dialect">

org.hibernate.dialect.Oracle9Dialect
</property>

应该成:

<property name="dialect">

org.hibernate.dialect.Oracle10gDialect

</property>

注:方言要么不写,要写就一定要写对,否则肯定报错



4、mapping 语句位置问题:

报出错误:

The content of element type "session-factory" must match "(property*,mapping*,(class-cache|collection-cache)*,event*,listener*)"

解决方案:

mapping 语句位置应该在mapping的下面

如:<property name="hbm2ddl.auto">create</property>
        <mapping resource="org/hibernate/tutorial/domain/Event.hbm.xml"/>
  

5、Login.hbm.xml配置class中schema问题:


报出错误:

Could not synchronize database state with session

或表或视图不存在等一堆错误

解决方案:

由于个人数据库设置的原因,删除class标签中schema="MYHR"之后错误解决


6、多出slf4j-log4j12包问题:

报出错误:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/Program%20Files/MyEclipse/configuration/org.eclipse.osgi/bundles/101/1/.cp/myeclipse-data/3.3/lib/core/required/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/java%20web/hibernate_lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

解决方案:

删除导入的hibernate的jar包的slf4j-log4j12-1.6.1


注:

1:若使用java project se-1.7则报出警告:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/Program%20Files/MyEclipse/configuration/org.eclipse.osgi/bundles/101/1/.cp/myeclipse-data/3.3/lib/core/required/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/java%20web/hibernate_lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
  


2:若直接在hibernate-distribution-3.3.2.GA\project\tutorials\web\src\main\resources中的hibernate.cfg.xml文件中修改的话,其中有些语句会使每次在数据库中增加数据时清空原有数据,具体是哪条语句暂时还没研究。



  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

bay0903

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值