在这一节我们将使用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();