一个Hibernate的开发指南
发布者:Ahaoz.CoM 发布时间:2006-06-13
前言
Hibernate做为一个非常优秀且已经被大量使用的数据库持久层工具已经越来越成熟了。 本文主要是针对使用Hibernate的开发者,本章节主要是说明在《Hibernate开发指南》中所使用到的开发环境的初步设置, 并使用一个简单的例子以说明Hibernate已经正常运行。
本文所主要使用的工具有:
JDK: JDK 1.4.2
开发集成环境: Eclipse 2.1.2
Hibernate 2.1
数据库:Oracle 9i
Hibernate的Eclipse插件: Tanghan Plugin
请先看看你的机器上是否已经安装这些软件,对于数据库,只是因为我的机器上已经安装了Oracle,使用其它的数据库不会有太大的差别的。 我的例子还使用了一个struts的框架,因为我认为web应用框架中struts是一个非常不错的选择,而加上Hibernate这个数据库访问层, 两者相匹配能达到更好的效果。为了使用Struts,也请确认你安装了以下软件:
Web应用服务器: Tomcat 4.x
Struts 1.1包
Eclipse的J2EE集成插件: MyEclipse 2.7RC1 以上版本(2.7开始提供struts的支持)
如果你不想使用MyEclipse这个商用的插件,也可以使用lomboz和easystruts来代替它的功能。 具体的软件安装和插件安装不在这里多说,以下我们来说说 它们安装后的配置。
软件配置
我们先来配置数据库,同时记下数据库开发时所需要的相关信息。
Oracle相关配置参数
我在Oracle中建立了一个单独的用户:HD,设置其密码为:abc。为该用户分配好相应的数据库空间, 细致的配置方法和信息不再多说,总之你需要得到类似下面的信息以备开发时所使用:
机器地址:hdibm(因为是在本机还可以使用localhost和127.0.0.1,如果是另一台机器使用该机器的IP地址)
oracle的侦听端口:1521
数据库实例名:hdorc
访问用户名:hd
访问密码:abc
需要注意的是要给HD用户分配至少Connect的角色。另外在他所使用的表空间中分配足够或是无限制的限额大小,否则在开发时都会遇到问题。 除这些之外还需要你从安装的Oracle或Oracle网站上下载最新的JDBC包,它有两个包,其中一个是与JDK相关的驱动,另一个是多语言支持包(这里我们不使用OCI的驱动,使用Thin的驱动)。 因为我使用的JDK为1.4所以驱动包我使用了 ojdbc14.jar ,JDK1.4使用的多语言支持包与JDK1.2相同都是 nls_charset12.jar 。
在数据库中我们建立一些表以用于程序开发,以一个简单的用户管理为例我们先建立一个简单的用户表(sysuser):
表名:sysuser
用户ID:userid(vchar:32)
用户名:username(vchar:20)
用户密码:userpasword(vchar:20)
用户最后登录时间:lastlogin(date)
你也可以使用这个sql语句来创建表:
CREATE TABLE "HD"."SYSUSER" ("USERID" VARCHAR2(32) NOT NULL,
"USERNAME" VARCHAR2(20) NOT NULL, "USERPASWORD" VARCHAR2(20)
NOT NULL, "LASTLOGIN" DATE, PRIMARY KEY("USERID"),
UNIQUE("USERNAME"))
TABLESPACE "USERS"
Tomcat安装
Tomcat的安装则非常简单了,从Tomcat网站上下载相关的安装包,解到相关的目录就可以了。安装Tomcat之后你需要记下以下信息:
Tomcat的安装目录
Tomcat的侦听端口(默认为8080)
配置Hibernate for Eclipse的插件Tanghan Plugin
初次使用这个插件时会有许多人无从下手,主要是不知从哪里使用这个插件。 首先要打开这个插件提供的两个视图: Database Access View 和 Database Data View 。 通过菜单上的窗口 > 显示视图 > 其它来选择这两个视图:
打开Database Access View视图,我们来配置Oracle的驱动,用鼠标右键点Oracle Thin Driver > 修改驱动程序信息:
这里:
驱动名称:Oracle Thin Driver
驱动程序包名:浏览选择你的ojdbc14.jar文件
驱动程序类:oracle.jdbc.driver.OracleDriver
驱动程序前缀:jdbc:oracle:thin: < username > @ < password > // < server > [: < 1521 > ] / < database_name > (这里是最新的驱动的URL书写方法,具体的最好看一下相关Oracle驱动的有关URL的说明)
配置好驱动程序后我们来增加一个数据库连接:
这里:
数据库连接名:HDTestDB
驱动名称:Oracle Thin Driver(就是在上面我们建立的)
驱动程序类:oracle.jdbc.driver.OracleDriver
数据库连接:jdb c:oracle:thin:hd@abc//hdibm:1521/hdorc
用户名:hd
密码:abc
接下来我们试着连接一下数据库:
需要我们再选择Shemas,从下拉列表中选择 HD ,按 确定 按钮。 如果能看到选择Shemas对话框,哪么说明你的数据库配置就没有什么问题了。 我们可以在Database Access View中看到库中的表及表结构:
配置MyEclipse
从 MyEclipse的网站 上下载到最新的MyEclipse的试用版以及Struts相关的TLD和Lib包。 安装完MyEclipse后,配置Tomcat的使用。主要是配置清楚tomcat的相关路径就可以了:
需要注意的是tomcat一定要使用一个JDK,而不是JRE,在tomcat的配置树中可以选择一个JDK以供Tomcat启动使用:
接下来将从网站上下载的Struts包解开到文件系统中(也可以手工将Struts 1.1包中的lib和tld拆出),在MyEclipse中配置好Struts 1.1的相关包:
这些配置完成我们就可以建立一个简单的项目了。
建立初始的Struts项目
我们先建立一个项目,为后续的深入开发做准备,这个项目是一个简单的框架,导入Tomcat部署支持、建立与Struts和Hibernate的库路径。
建立Web应用项目
首先使用向导建立一个Web Module Project:
输入Web Project的相关信 息:
按图中所示一一输入。点完成建立Project。
为项目加入Tomcat部署支持
接下来为项目加入Tomcat部署支持:
在弹出的对话框中点Add,并在下拉框中选中Tomcat 4:
为Web应用加入Struts支持
再为项目加入Struts支持:
在弹出的对话框中按下图输入信息:
这样就为Web应用项目加入了Struts支持,这一步会自动为项目加入Struts的支持包和Struts需要使用的TLD文件(Tag Lib说明文件)。之后我们可以看到:
为Web应用加入Hibernate支持
Hibernate中有大量的jar,不建议大家全部加入,以下是你必须加入的jar包(这些包除hibernate2.jar在根下其它都在lib子目录中):
hibernate2.jar:Hibernate的核心库。
cglib2.jar:Hibernate用来实现PO字节码的动态生成时所需要的库。
commons-collections.jar:Apache Commons提供的比java.util.*功能更强的集合类。
commons-lang.jar:Apache Commons提供了扩展java.lang.*的功能。
commons-logging.jar:Apache Commons提供的一个通用日志接口工具。它会使用Log4j、JDK的java.util.logging、commons-logging的Simple Logger的顺序来寻找可用的log API。
dom4j.jar:一个访问XML的java接口实现,Hibernate使用该包来完成XML的操作。
odmg.jar:ODMG是一个ORM的规范,Hibernate使用这个包实现了ODMG规范。
xalan.jar、xerces.jar和xml-apis.jar:XSLT处理器、SAX解析、标准JAXP API包,都是用于XML的处理。(大多应用服务器带有这三个包)
以下包依据你应用中的情况做为选项可以加入,由你自己来定了:
c3p0.jar:C3PO数据库连接池所使用的包。
commons-dbcp.jar和commons-pool.jar:Apache Commons提供的名为DBCP的数据库连接池所使用的包。
jboss-cache.jar、concurrent.jar、jboss-common.jar、jboss-jmx.jar、jboss-system.jar:TreeCache所使用的包,它实现了一个可以集群的cache。
connector.jar:标准JCA API包。大多应用服务器都带了。
(*)ehcache.jar:EHCache cache包,Hibernate默认使用这个包来完成cache功能。
jaas.jar:标准JAAS API包。大多应用服务器也带有这个包,这个包是供JCA来使用的。(JDK 1.4也已经包含这个包了)
jcs.jar:JCS cache包。
jdbc2_0-stdext.jar:标准JDBC 2.0 API扩展包。大多应用服务器也包含了这个包。
swarmcache.jar和jgroups.jar:SwarmCache可复制的分布式Cache所使用的包。它使用JavaGroups进行组通讯,适合于集群环境的数据库应用Cache。
(*)jta.jar:标准JTA API包。大多数应用服务器也带有这个包。
log4j.jar:Log4包,Log4j是Logger工具中一个非常好的选择。
oscache.jar:由OpenSymphony所提供的OSCache包,用于数据库的Cache。
proxool.jar:Proxool JDBC数据库连接池包。
还有一些其它的包,都不是运行时刻所使用的包,附在这里以做了解了:
ant.jar:编译Hibernat时使用的ant核心包。
junit.jar:JUnit测试框架包,编译时为测试代码进行测试所使用的。
optional.jar:Ant使用的辅助包,包括了一些附加的task。
加入包的方法很简单,使用资源管理器将jar文件拖入web目录下的WEB-INF中的lib目录就可以了。 MyEclipse会自动将该目录中的所有的jar文件加入到project的编译classpath中去的。 注意,除必须的包之外,前面有(*)的包也请加入到项目中去。由于是使用Tomcat,在必须的包中的有关XML包也可以不加入。如下图:
为Web应用加入JDBC驱动包
将之前准备好的Oracle驱动包也加入到Web项目中。主要是这两个文件:
nls_charset12.jar
ojdbc14.jar
下图是配置到最后所有的包的列表,也请大家一一核对:
配置Hibernate的配置文件
配置Hiberna
[1] [2] [3] [4] 下一页
进入问吧