开始一个新事务,代码如下:
| 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++) |
下面的代码使用XMLWriter对象将数据输出到XML文档对象中:
| XMLWriter output = new XMLWriter(new FileWriter(new File("c:/catalog/catalog.xml"))); output.write(document); |
在这一节我们将使用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()) |
最后需要将Session保存,并关闭Session,代码如下:
| session.flush(); tx.commit(); session.close(); |
相关专题
- 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次浏览)



