首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 开源技术 >> Hibernate >> 正文

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

    在执行完上面的命令后,在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();
Document document
= saxReader.read(new File("c:/Hibernate/catalog.xml"));

    下面的代码将获得文档对象中catalog节点的列表,并且创建一个Iterator对象用于浏览列表中止数据:

     List list = document.selectNodes("//catalog");
     Iterator iter = list.iterator();

    Iterate可以枚举列表中的对象,并且从列表中获得相应的节点。我们可以使用save(String entityName,Object object)方法来将节点数据保存在数据库中。其实save方法并不会真的将数据保存在数据库中,要想物理保存,必须使用flush方法来同步数据库和XML文档,代码如下:

 while(iter.hasNext())
{
    Object catalog
= iter.next();
    dom4jSession.save(
"Catalog", catalog);
}

    最后,我们将使用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);

 

上一页  [1] [2] [3] 下一页

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航