在执行完上面的命令后,在Oracle数据库就建立了一个user.Catalog表。
在这一节,我们将开发一个Java应用程序就于将XML文档转换成在上一节所描述的数据表。 我们将使用表示所描述的catalog.xml中的数据。
这个Java应用程序将映射文件,用于数据持久化的属性文件集成到了一起。首先将Catalog.hbm.xml和hibernate.properties文件复制到同一个目录。并将这个目录加到CLASSPATH中。在Java应用程序中使用import导入org.hibernate包和dom4j包。
org.hibernate.Session是主要的运行时接口,它负责将Java应用程序和Hibernate连接起来。你可以使用它在数据库表中增加、获得、更新和删除XML数据。我们可以从一个SessionFactory中获得一个Session对象。这个SessionFactory接口提供了openSession方法用来创建一个数据库连接以及打开一个连接会话。org.hibernate.cfg.Configuration类用来指定配置属性和创建一个SessionFactory的映射文件。下面的代码将创建一个配置对象:
| Configuration config=new Configuration(); |
下面的代码将映射文件catalog.hbm.xml加入到配置中:
| config.addFile("catalog.hbm.xml"); |
现在映射文件Catalog.hbm.xml以及JDBC属性文件在相同的目录,并且应用程序使用配置对象获得这此文件的信息。下面的代码将创建一个SessionFactory对象:
| SessionFactory sessionFactory=config.buildSessioFactory(); |
接下来,将向使用SchemaExport工具创建的数据表中加入数据,首先从SessionFactory对象中得到一个Session对象:
| Session sess =sessionFactory.openSession(); |
下面的代码将得一个Transaction对象,我们可以使用这个对象向数据表中加入数据:
| org.hibernate.Transaction tx = sess.beginTransaction(); |
使用DOM4J模式开始一个会话,第二个会话和第一个主会话有同样的连接、事务和上下文属性:
| Session dom4jSession = session.getSession(EntityMode.DOM4J); |
下面将创建一个SAXReader对象用于分析描述数据表的XML文档。我们可以使用read(File)方法来分析catalog.xml文件,代码如下:
| SAXReader saxReader = new SAXReader(); |
下面的代码将获得文档对象中catalog节点的列表,并且创建一个Iterator对象用于浏览列表中止数据:
| List list = document.selectNodes("//catalog"); Iterator iter = list.iterator(); |
Iterate可以枚举列表中的对象,并且从列表中获得相应的节点。我们可以使用save(String entityName,Object object)方法来将节点数据保存在数据库中。其实save方法并不会真的将数据保存在数据库中,要想物理保存,必须使用flush方法来同步数据库和XML文档,代码如下:
| while(iter.hasNext()) |
最后,我们将使用flush来保存Session,使用commit来提交事务,使用close来关闭会话,代码如下:
| session.flush(); tx.commit(); session.close(); |
在这一节中我们将从一个数据表中以XML的形式得到数据。和上一节一样,需要创建一个配置对象,并且将映射文件catalog.hbm.xml加到配置对象中,代码如下:
| configuration config = new Configuration(); config.addFile("catalog.hbm.xml"); |
然后从配置对象创建一个SessionFactory对象,并且使用SessionFactory打开一个会话对象:
| sessionFactory sessionFactory = config.buildSessionFactory(); session = sessionFactory.openSession(); |
使用DOM4J实体模式创建一个新会话,代码如下:
| Session dom4jSession = session.getSession(EntityMode.DOM4J); |
相关专题
- Hibernate原理与配置 (359篇文章)
- 数据库专栏 (5163篇文章)
- 数据库处理专题 (8684篇文章)
- 城域网专题 (7833篇文章)
- 数据库安全技术专题 (13169篇文章)
- 数据库安装与卸载 (10543篇文章)
- XML详解 (1548篇文章)
- Linux数据库宝典 (13157篇文章)
- SQL server 复制 (57篇文章)
- Hibernate相关文章 (359篇文章)
- 开发框架:深入了解 Struts Validator (3次浏览)
- Java中的通信机制及与C/C API的集成 (1次浏览)
- 用Hibernate实现领域对象的自定义字段 (1次浏览)
- 精通Hibernate之映射继承关系(一) (0次浏览)
- 精通Hibernate之映射继承关系(二) (0次浏览)
- 美国计算机教授语出惊人:Java对学生有害 (0次浏览)
- JDK 6 JRE 6 Update 4 (0次浏览)
- 三步教你改善Java代码质量 (0次浏览)
- Java语言入门 简述Java语言回收机制 (0次浏览)
- 2008年Java开发者最迫切的五个期望 (0次浏览)



