频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用Hibernate3.1实现XML和数据库的同步

来源:IT168 作者: 出处:巧巧读书 2007-06-18 进入讨论组
下一页 1 2 3 

    Hibernate是一套开源的用于对象/关系持久化和查询服务的Java库。现在Hibernate的最新版本是3.1.在这个版本中引入了一个新的特性:XML到数据库映射(也可以看做是XML和数据库的同步)。

这个功能允许程序员将基于XML文档的数据映射成数据库(在当前版本的Hibernate中支持DB2MySQLOracle和PostgreSQL)。通过使用Hibernate,可以将XML文档的节点(Node)映射成数据库的列。每一个XML文件直接被映射成一个数据库表,在这个过程中并不要求一个POJO.Hibernate可以根据需要生成相应的SQL(包括create、update、delete、insert等)。   我们还可以通过Hibernate的配置文件生成新表,并将XML数据添加到数据库中。还能以XML格式得到数据库表中的数据,并通过XML的方式增加或更新数据。同时,Hibernate3.1还支持dom4j API,并且支持Ant.在本文中将学习如何使用Hibernate3.1开发一个基于XML映射的应用程序。

    我们要做的第一项工作就是设计数据库配置属性,这些属性可以在hibernate.properties中设置。这此属性主要包括要连接的数据库,JDBC驱动类以及连接数据库的连接字符串。还需要设置一个映射文件hbm.xml.这个文件指定了XML文档的节点和相应的数据表中的列的对应关系。Java Bean要映射的数据表名也在这个文件中指定。我们可以使用org.hibernate.tool.hbm2ddl.SchemaExport工具将映射文件映射到数据表上。本文将详细描述如何将一个Catalog.hbm.xml文件映射到一个Oracle数据表上。

    一、准备工作

    在开始本文的讲解前需要先安装用于开发的Hibernate应用程序包,我们可以从www.hibernate.org下载Hibernate的3.1版。然后需要安装Oracle 10g,详细的安装过程请参考相关的文章。最后,我们将本程序所需要的Hibernate的。jar文件加到加到CLASSPATH环境变量中。这些。jar文件如表1所示:

.jar文件
描述
hibernate3.jar
这是hibernate主要的jar包,其中org.hibernate.tool.hbm2ddl.SchemaExport就包含在这个文件中
dom4j-1.6.1.jar
commons-logging-1.0.4.jar
commons-collections-2.1.1.jar
ehcache-1.1.jar
cglib-2.1.3.jar
jta.jar
asm.jar
antlr-2.7.6rc1.jar
jaxen-1.1-beta-7.jar
这九个jar文件是包含了Hibernate的辅助类
classes12.jar or ojdbc14.jar
这是操作Oracle数据库的JDBC类

    表1 Hibernate的jar文件

    在本节中,我们将学习如何从一个XML映射文件生成一个数据库表。这个工作可以通过hibernate.properties文件实现,这个文件将指定数据库的设置信息和hbm.xml映射文件。如果你使用一个配置文件(hibernate.cfg.xml)来指定数据库属性,那么hibernate.properties文件将不再需要……hbm.xml文件包含了将XML文档节点映射成数据库表的类的定义以及表名和XML文档相对应的列。除了这些,还需要指定列的类型、长度、是否为null以及是否唯一。表2列了一些主要的映射文件设置项。

设置项
描述
hibernate-mapping
这是根设置项,它包含了schema和package属性和class字设置项
class
指定映射到数据库表的实体。包括table、schema、entity-name和node属性。它的子设置项有id、property、set和list。
id
在定义类时要求的设置项。包括column、type和length属性和column、generator设置项
property
指定某个实体的属性和相应的数据库表列。包含type、column、length和not-null属性。

    表2  Hibernate映射文件的主要设置项

    在本文的例子的映射文件指定了一个实体Catalog,其中包含了Catalog的节点(也就是列)。XML文档节点在节点属性中指定。这个例子映射文件Catalog.hbm.xml在表3中指定。其中<generator class="native"/>指定了唯一标识符的产生策略。我们可以在Hibernate.properties文件中指定JDBC配置信息。在hibernate.properties文件中包含的属性通过<property>=<value>指定。JDBC的部分配置将在表3中列出。

属性
描述
hibernate.connection.driver_class
连接数据库的驱动类
hibernate.connection.url
用于连接数据库的连接字符串
hibernate.dialect
数据库类型
hibernate.connection.username
登录数据库的用户名
hibernate.connection.password
登录数据库的密码

    表3. Hibernate.properties的部分属性

    在本文的例子中将数据库驱动类指定为oracle.jdbc.driver.OracleDriver.连接字符串使用Oracle的第四种类型连接字符串,数据库类型为Oracle.

    hibernate.properties的设置如下所示:

    hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
用Hibernate3.1实现XML和数据库的同步(图一)hibernate.connection.url=jdbc:oracle:thin:@localhost:1521:OracleDB
用Hibernate3.1实现XML和数据库的同步(图一)hibernate.connection.username=user
用Hibernate3.1实现XML和数据库的同步(图一)hibernate.connection.password=mypw
用Hibernate3.1实现XML和数据库的同步(图一)hibernate.dialect=org.hibernate.dialect.OracleDialect

    在本例中将使用org.hibernate.tool.hbm2ddl.SchemaExport工具根据Catalog.hbm.xml和hibernate.properties文件来产生一个Oracle数据表。

    首先将hibernate.properties和Catalog.hbm.xml文件复制到同一个目录下。如d:\hibernate.然后启动Oracle数据库服务,接下来使用如下命令产生一个Oracle数据库表:

 java org.hibernate.tool.hbm2ddl.SchemaExport --properties=hibernate.properties Catalog.hbm.xml

http://www.qqread.com/java/2007/06/d317392.html 更多文章 更多内容请看Hibernate原理与配置数据库专栏数据库处理专题专题,或进入讨论组讨论。
下一页 1 2 3 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章