技术开发 频道

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



在这一节我们将使用Hibernate API删除一行记录。我们需要在catalog-delete.xml中指定要删除的行。首先创建一个Configuration对象,并将catalog.hbm.xml加入到Configuration对象中:

Configuration config = new Configuration();
config.addFile("catalog.hbm.xml");
 
    下面的代码将创建一个SessionFactory对象,并使用openSession方法打开一个会话:
 
SessionFactory sessionFactory = config.buildSessionFactory();
session = sessionFactory.openSession();
 
下面的代码将使用DOM4J模式创建一个Session对象。这个Session对象和DOM4J将拥有同样的连接、事务和上下文属性,代码如下:
 
Session dom4jSession = session.getSession(EntityMode.DOM4J);
 
    创建一个事务,代码如下:
tx = session.beginTransaction();
 
创建一个SAXReader对象用来分析XML文档:catalog-delete.xml,代码如下:
 
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(xmlDocument);
 
下面的代码将得到catalog节点对象,并创建一个Iterator对象(为了枚举这个节点的字节点),代码如下:
 
List list = document.selectNodes("//catalog");
Iterator iter = list.iterator();
 
 
    下面的代码将枚举catalog中的所有数据,并将Catalog删除,代码如下:
 
while (iter.hasNext())
{
        Object catalog = iter.next();
        dom4jSession.delete("Catalog", catalog);
     }
 
    最后需要将Session保存,并关闭Session,代码如下:

session.flush();
tx.commit();
session.close();
0
相关文章