【hibernate+Spring学习】hibernate基础

来源:互联网 发布:海盗港新域名 编辑:程序博客网 时间:2024/05/17 23:37

一、必需的hibernate相关的包有(hibernate-jar包目录下的所有jar包)
antlr.jar
cglib-full.jarasm.jar
asm-attrs.jars
commons-collections.jar
commons-logging.jar
ehcache.jar
hibernate3.jar
jta.jar
dom4j.jar
log4j.jar

 

如果是连接oracle数据库,则用如下的jar包:
ojdbc14.jar

 

说明:
? dom4j(必需):Hibernate在解析XML配置和XML映像元文件时需要使用dom4j。
? CGLIB(必需):Hibernate在运行时使用这个代码生成库强化类(与Java反射机制联合使用)。
? Commons Collections, Commons Logging(必需):Hibernat使用Apache Jakarta Commons项目提供的多个工具类库。
? ODMG4(必需):Hibernate提供了一个可选的ODMG兼容持久化管理界面。如果你需要映像集合,你就需要这个类库,就算你不是为了使用ODMG API。
? EHCache(必需):Hibernate可以使用不同的第二级Cache方案。如果没有修改配置的话,EHCache提供默认的Cache。
? Log4j(可选):Hibernate使用Commons Logging API,后者可以使用Log4j作为底层实施log的机制。如果上下文类目录中存在Log4j库,Commons Logging就会使用Log4j和它在上下文类路径中找到的log4j.properties文件。在Hibernate发行包中包含有一个示例的 properties文件。所以,如果你想看看幕后到底发生了什么,也把log4j.jar拷贝到你的上下文类路径去吧(它位于src/目录中)。
以上是Hibernate参考手册所列出的jar档案,Hibernate底层还需要Java Transaction API,所以您还需要jta.jar,到这边为止,总共需要十个jar档案。


二、Hibernate的开发相当灵活,可以采用多种方式开发。
·  只有Hbm映射文件: 映射文件---hbm2java----java---SchemaExport----数据表
·  只有Java:        java---XDoclet---Hbm----SchemaExport----数据表
·  如果只有数据表呢?可以采用Middlegen:
                      数据表---Middlegen---Hbm----hbm2java----java
    关于利用Middlegen开发Hibernate的方法,可以参考夏昕编写的《Hibernate开发指南》。
·  至于有关Hibernate的Eclipse插件,也有很多,可以看看《Working with Hibernate in Eclipse》。

 

三、Spring + hibernate 配置AOP时的冲突解决

环境:Spring2.0 Hibernate3.1.x/Hibernate3.2

在使用Spring的AOP编程时,会用到这几个lib:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar

Hibernate使用如下lib:
asm.jar
asm-attrs.jar


其中asm-2.2.2.jar与asm.jar存在类上的冲突!!!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。

解决办法是:
1.去掉类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar

2.加入Spring中的以下4个lib
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
cglib-nodep-2.1_3.jar

原创粉丝点击