Hibernate是ORM的解决方案,其底层对数据库的操作依赖于JDBC,所以您必须先取得JDBC驱动程序,在这边我们使用的是MySQL,所以您必须至以下网址先取得MySQL的JDBC驱动程序:
JDBC驱动程序
接下来取得Hibernate,在撰写此文的同时,Hibernate最后的稳定版本是2.1.6,而3.0版还在测试阶段,这边的介绍将以2.1.6为主,所以请至以下网址取得hibernate-2.1.6.zip:
Hibernate官方网站
解开hibernate-2.1.6.zip后,当中的hibernate2.jar是必要的,而在lib目录中还包括了许多jar档案,其中 dom4j、CGLIB、Commons Collections、Commons Logging、ODMG4、EHCache是必要的,而Log4j则是建议使用的,为何使用这些jar,在Hibernate参考手册中有说明,您可以开启doc/reference中的参考手册,有英文版与简体中文版的介绍,档案格式则提供有html与pdf两种,以下列出简体中文中的说明:
JDBC驱动程序
接下来取得Hibernate,在撰写此文的同时,Hibernate最后的稳定版本是2.1.6,而3.0版还在测试阶段,这边的介绍将以2.1.6为主,所以请至以下网址取得hibernate-2.1.6.zip:
Hibernate官方网站
解开hibernate-2.1.6.zip后,当中的hibernate2.jar是必要的,而在lib目录中还包括了许多jar档案,其中 dom4j、CGLIB、Commons Collections、Commons Logging、ODMG4、EHCache是必要的,而Log4j则是建议使用的,为何使用这些jar,在Hibernate参考手册中有说明,您可以开启doc/reference中的参考手册,有英文版与简体中文版的介绍,档案格式则提供有html与pdf两种,以下列出简体中文中的说明:
- dom4j(必需):Hibernate在解析XML配置和XML映像元文件时需要使用dom4j。
- CGLIB(必需):Hibernate在运行时使用这个代码生成库强化类(与Java反射机制联合使用)。
- Commons Collections, Commons Logging(必需):Hibernate使用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档案:
mysql-connector-java-3.0.14-production-bin.jar
jta.jar
hibernate2.jar
cglib-full-2.0.2.jar
commons-collections-2.1.1.jar
commons-logging-1.0.4.jar
dom4j-1.4.jar
ehcache-0.9.jar
log4j-1.2.8.jar
odmg-3.0.jar
其它的jar档案则视您的需要来设定,例如您应该也会使用到Ant,这对于自动化建构Hibernate有相当的帮助,您可以先查看我另一个版面上有关于Ant的介绍:
Ant入门
Hibernate可以运行于单机之上,也可以运行于Web应用程序之中,如果是运行于单机,则将所有用到的jar档案(包括JDBC驱动程序)设定至 CLASSPATH中,如果是运行于Web应用程序中,则将jar档案置放于WEB-INF/lib中,其中JDBC驱动程序也可以依赖于JNDI 来取得资源,设定的方式之后介绍,或者您也可以先看看这篇文章有关于DBCP的介绍:
DBCP介绍
准备好这些档案后,我们下一个主题将介绍一个快速入门的例子。
发表于 @
2005年01月15日 1:51 PM
既然在eclipse环境下工作,最好所有相关的工作都能在它里面完成。hibernate自带了一个工具schemaExport,可以让你从map文件产生数据库的ddl。
在eclipse project中新建一个目录,schemae,然后新建两个文件。schemae.xml,schema.properties。
在eclipse project中新建一个目录,schemae,然后新建两个文件。schemae.xml,schema.properties。
schema.properties的内容:
neededClassPath=c:/hibernate-2.1.4/hibernate-2.1/hibernate2.jar;c:/hibernate-2.1.4/hibernate-2.1/lib/dom4j-1.4.jar;c:/hibernate-2.1.4/hibernate-2.1/lib/commons-collections-2.1.jar;c:/hibernate-2.1.4/hibernate-2.1/lib/commons-logging-1.0.3.jar;c:/hsqldb_1_7_1/hsqldb/lib/hsqldb.jar;D:/eclipse-SDK-2.1.2-win32/eclipse/workspace/fhjsj/bin/;D:/eclipse-SDK-2.1.2-win32/eclipse/workspace/fhjsj/fhjsj/WEB-INF/classes/
schema.xml的内容:
<!-- Copyright (c) 2002 by ObjectLearn. All Rights Reserved. -->
<project name="schemaExport" default="schemaexport" basedir=".">
<project name="schemaExport" default="schemaexport" basedir=".">
<property file="schemae.properties"/>
<target name="schemaexport">
<taskdef name="schemaexport"
classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"
classpath="${neededClassPath}"/>
<target name="schemaexport">
<taskdef name="schemaexport"
classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"
classpath="${neededClassPath}"/>
<schemaexport
quiet="no"
text="true"
drop="no"
delimiter=";"
output="workspace/fhjsj/schemae/schema-export.sql">
<fileset dir="../fhjsj/WEB-INF/classes/">
<include name="**/*.hbm.xml"/>
</fileset>
</schemaexport>
</target>
</project>
quiet="no"
text="true"
drop="no"
delimiter=";"
output="workspace/fhjsj/schemae/schema-export.sql">
<fileset dir="../fhjsj/WEB-INF/classes/">
<include name="**/*.hbm.xml"/>
</fileset>
</schemaexport>
</target>
</project>
其它的hibernate.properties和mapping 文件根据web程序的规范放在WEB-INF的classes里面。最后产生的ddl文件放在schemae目录下面。