商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
您的位置:首页 > 技术频道 > 正文


    在这一节中我们将从一个数据表中以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);
 
    开始一个新事务,代码如下:
tx = session.beginTransaction();
 
下一步将使用Catalog中的数据来创建一个XML文档。首先,使用静态方法createDocument方法(在DocumentHelper类中)来创建一个Document对象。并将catalogs元素加到Document对象中,代码如下:
 
Document document = DocumentHelper.createDocument();
Element rootElement = document.addElement("catalogs");
 
    创建一个Hibernate查询(HQL)用来查询表中的数据。HQL的语法类似SQL的语法。在HQL中并不要求Select子句。在From子句后面需要加实体名,而不是数据库表名,HQL的代码如下:
 
String hqlQuery ="FROM Catalog";
 
    在写完HQL后,需要使用Session对象的createQuery(hqlQuery)方法创建一个查询对象,并通过list()方法得到相应的查询结果。代码如下:
 
List results = dom4jSession.createQuery(hqlQuery).list();
 
    下面的代码将枚举返回结果中所有的数据。每一行对应XML文档中的一个catalog节点。并将catalog加入到每一个文档对象的根元素中:
 
for (int i = 0; i < results.size(); i++)
{
        Element catalog = (Element) results.get(i);
        rootElement.add(catalog);
    }
 
    下面的代码使用XMLWriter对象将数据输出到XML文档对象中:
 
XMLWriter output = new XMLWriter(new FileWriter(
                        new File("c:/catalog/catalog.xml")));
output.write(document);
 
1 2 3 4
©版权所有。未经许可,不得转载。
[责任编辑:李宁]