Hibernate对象持久化技术的研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:jingcheng0417
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:对象持久化技术是一种数据存储方法,其目的是为了使程序开发者更加方便的访问数据。对象持久化技术解决了面向对象技术和关系数据库技术的不匹配问题,使得程序员从数据库细节中解放出来,让程序员有更多的精力去处理事务逻辑。
  关键词:对象;持久化;对象关系映射;Hibernate
  中图分类号:TP312文献标识码:A文章编号:1009-3044(2011)19-4733-02
  Study on Object Persistence of Hibernate
  WEI Hui-ru, LI Xiao-dong, REN Gang
  (Chenggong College of Henan University of Economics and Law, Zhengzhou 451200, China)
  Abstract: The object persistence technology is a method of data storage, it makes the programmer more easily access the data. And it solves the problem of matchbetween the Object-oriented technology and the Relational Database technology, liberates the programmer from dealing with the details of the database, so that the programmerhavemoreenergyto deal with transaction.
  Key words: object; persistent; object-relational mapping; Hibernate
  1 什么是对象持久化
  对象持久化[1]是将程序数据在持久状态和瞬时状态间转换的机制,并在需要对象数据的时候,能够方便地提取出来。
  对象持久化是通过对象关系映射[2]完成的,通过映射将在数据库中直接进行的增删改查操作转换为对类的属性和方法的操作。在实际应用中,很多对数据库中数据的处理,如表记录的增加、删除、修改、查询的工作,通过对象关系映射可以将这些操作转移到前台的逻辑层来,而数据库工具将更加专注于数据的管理,把操作和管理分开是对象关系映射的核心设计思想。
  2 不使用对象持久化的缺点
  在通常的数据库程序设计中需要做三件事,与数据库建立连接,发送操作数据库的SQL语句,处理结果。示例如下:
  Class.forName(driverName);
  Connection Conn =
  DriverManager.getConnection(dbURL, userName, userPwd);
  String SQL="select*fromtable";
  PreparedStatement ps = Conn.prepareStatement(SQL);
  ResultSet rs = ps.executeQuery();
  上面的代码是没有使用对象持久化技术的代码,其实有很多问题。结构化查询语句SQL被手工编码并大量嵌入到代码中,结构不清楚,维护性、可重用性很差。目前面向对象的开发方法成为主流,我们希望的是能够直接从数据库中取出或者保存对象数据。
  3 使用对象持久化的优点
  上面介绍了没有使用对象持久化技术的缺点,正是为了解决这些问题,对象持久化技术诞生了,有了对象持久化技术后,数据操作以类对象为单元,下面的代码片段说明了这个问题。
  Session session = factory.getSessionFactory().openSession();
  session.beginTransaction();
  ClassDemo classDemo=new ClassDemo();
  session.save(classDemo);
  session.getTransaction().commit();
  session.close();
  上述代码通过save()方法直接将classDemo对象持久化到数据库,代码中没有结构化查询语句 ,结构清晰,代码可读性强。
  4 对象持久化技术应用
  在应用系统中使用对象持久化技术需要进行以下四个步骤:
  1) 创建Hibemate系统配置文件
  Hibernate框架为了能够在各种不同物理数据库环境下都能很好的工作,提供了对数据库进行连接的配置参数,这些配置参数集中放在一个文件中,通常使用Hibernate.cfg.xml文件[3]。下面是一个典型的配置文件:
  
  driver
  database
  name
  pwd
  DBDialect
  

  2) 设计持久化类
  持久化类就是在领域中设计的模型,是在面向对象程序中建立的类,这些类通常都是实体类,我们利用它们携带数据,这些实体类对象可以用Hibemate框架持久化到数据库中。
  3) 建立对象关系映射
  持久化类设计完成以后,就可以建立对象和关系数据库表之间的映射了。
  在映射中,基本原则是:类映射成数据库表,属性映射成数据库表中的字段。
  4) 通过Hibemate 框架提供的方法编写访问数据库的代码
  在Hibernate框架中提供了一个Session接口,它是Hibernate框架持久化管理器的核心,该接口提供了众多的持久化方法,如 save(),load(),get(),delete() ,update()等,通过这些方法我们可以透明的完成对象的增加,修改,查询和删除操作。
  Session对象是有生命周期的[4],它以Transaction对象的开始和结束为边界。一般情况下,每一个Session对象实例与一个数据库事务绑定,执行一个数据库事务操作,都应该先创建一个新的Session实例对象。不论事务执行成功与否,最后都应该调用Session对象实例的close()方法,从而释放Session对象实例占用的资源。事务执行中如果出现异常,应该撤消事务。
  下面的例子讲解了如何利用Session持久化数据:
  Session session = factory.openSession();
  Transaction transaction;
  try { transaction = session.beginTransaction();
  //其他操作
  transaction.commit();
  } catch (Exception e) {
  if (tx!=null)
  transaction.rollback();
  throw e;
  } finally {
  session.close();
  }
  5 小结
  Hibernate框架解决了面向对象技术和关系数据库技术的不匹配问题,使得程序员从数据库细节中解放出来,让程序员有更多的精力去处理事务逻辑,将会越来越受到面向对象程序设计者的关注。
  参考文献:
  [1] 孙卫琴.精通Hibernate:Java对象持久化技术详解[M].北京:电子工业出版社,2005.
  [2] Minter D.Linwood,Hibernate基础教程[M].北京:人民邮电出版社,2008.
  [3] 李刚.轻量级Java EE企业应用实战[M].北京:电子工业出版社,2009.
  [4] 杨少波.J2EE项目实训-Hibernate框架技术[M].北京:清华大学出版社,2008.
其他文献
简要介绍了XPath技术,分析了使用XPath路径表示式选择XML文档节点的方式,分析了.NET对XML文档的访问支持,探讨了在.NET环境下,基于XPath技术使用C#语言实现XML文档数据提取的
1940年10月至1942年4月,陈石珍在西北大学担任代理校长,在西北联大诸校长中,任职时间不算最短,但关于他的记载,却非常之少,最有影响的是“黄包车事件”。关于在西北大学及一生的经
啊!十里店,  我的梦中情人。  当年惊于你的美丽,  让我一个劲儿地走神。  大河,高山,道路,麦田,  一水儿的娇黄耀人眼。  绿树, 黑瓦,红日,蓝天,  老天爷也玩儿起了调色板。  羊皮筏,老水车,小毛驴大桶驮水,  好一派“异域”风光,野性的美。  校舍枕着田垄,鸟鸣和着读书声。  城乡在这里融溶,文明在这里诞生。  平川上来的小年轻咋能不动情?  这里一切的一切,都如此新鲜、生动。  
分子印迹技术是高聚合物质对特定目标分子进行选择性识别和分离的技术,可以对目标分子进行高灵敏的检测和分离,因而得到广泛应用。制备了一种基于氧化硅的表面分子印迹聚合物,提
通过改善,提高候机楼内的火警预防,运用电子巡视管理系统进行管理。从而降低了候机楼内的火灾发生,并提高了中控运行科工作人员的整体技术和管理水平。
目的:观察依达拉奉联合巴曲酶治疗急性脑梗死的临床疗效.方法:将80例发病在72小时以内的急性脑梗死患者随机分为治疗组40例和对照组40例.对照组给予巴曲酶10、5、5U依次加入生
目前,网络评论的情感分类研究大部分是不平衡样本数据,正向样本的数量一般远大于负向样本,对这种不平衡样本集进行分类时容易产生少数类误差较大的问题。而且由于网络评论的表达
介绍了一种基于物联网技术的单位辅助管理系统,用于保障单位重点场所和设备的安全,提高单位管理的自动化和智能化程度。该系统使用现有门禁和监控设备并对其进行二次开发,实现了
随着我国教育体制的改革和教育模式的创新,我国高职院校中很多学科特别是对于计算机的教学模式也不断更新演变,而在当今兴起的CDIO工程教育模式成为近些年来高职教育改革的最
在信息安全类课程的实验教学中利用Mathematica应用程序来演示整数乘法群逆元的性质、扩展欧几里得算法、模冥周期性等教学内容,通过这些可视化的实验程序来帮助学生学习和理