Hibernate和Tomcat.pdf

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate和Tomcat

335 第二十五章 Tomcat与Hibernate Hibernate是一个面向Java环境的对象/关系数据库映射工具。对象/关系数据库映射 (object/relational mapping(ORM))这个术语表示一种技术,用来把对象模型表示的对象 映射到基于SQL的关系模型数据结构中去。 25.1 Hibernate技术简介 Hibernate对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用 对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的 客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可 以在应用EJB的J2EE架构中取代CMP(Container managed persistence,EJB的一种),完成 数据持久化的重任。 Hibernate不仅仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映 射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处 理数据的时间。 Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。对 于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑, Hibernate可能不是最好的解决方案;对于那些在基于Java的中间层应用中,它们实现面向对 象的业务模型和商业逻辑的应用,Hibernate是最有用的。不管怎样,Hibernate一定可以帮助 开发者消除或者包装那些针对特定厂商的SQL代码,并且帮助开发者把结果集从表格式的表 示形式转换到一系列的对象去。 然而Hibernate不是一种强迫性的解决方案。开发者在写业务逻辑与持续性类时,不会 被要求遵循许多Hibernate特定的规则和设计模式。这样,Hibernate就可以与大多数新的和现 有的应用平稳地集成,而不需要对应用的其余部分作破坏性的改动。 Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。在 后面的几节中先简单介绍Hibernate能干什么,然后将Hibernate与Tomcat进行集成开发。 从这图25.1可以看出,Hibernater使用数据库和配置信息来为应用程序提供持久化服务 (以及持久的对象)。 下面更详细地看一下Hibernate运行时体系结构。由于Hibernate非常灵活,且支持数种应 用方案,所以这里只描述两种极端的情况。“轻型”的体系结构方案,要求应用程序提供 自己的JDBC 连接并管理自己的事务。这种方案使用了Hibernate API的最小子集,此时, Hibernate在应用程序中的作用如图25.2。 336 图25.1 Hibernater体系结构 图25.2 轻型Hibernate运行体系结构 “全面解决”的体系结构方案,将应用层从底层的JDBC/JTA API中抽象出来,而让 Hibernate来处理这些细节。如图25.3。 图25.3 “全面解决”的体系结构 图25.3中各个对象的定义如下: SessionFactory (org.hibernate.SessionFactory):针对单个数据库映射关系经过编译后 的内存镜像,它也是线程安全的(不可变)。它是生成Session的工厂,本身要用到 ConnectionProvider。该对象可以在进程或集群的级别上,为那些事务之间可以重用 的数据提供可选的二级缓存。 Session(org.hibernate.Session):表示应用程序与持久储存层之间交互操作的一个单 线程对象,此对象生存期很短。它隐藏了JDBC连接,也是Transaction的工厂。会持 有一个针对持久化对象的必选(第一级)缓存,在遍历对象图或者根据持久化标识 查找对象时会用到。 持久的对象及其集合:带有持久化状态的、具有业务功能的单线程对象,此对象生 存期很短。这些对象可以是普通的JavaBeans或者POJO(Plain Old Java Objects , 就是POJOs,有时候也称作Plain Ordinary Java Objects,一个POJO很像JavaBean), 比较特殊的是它们正与一个(仅仅一个)Session相关联。这个Session被关闭的同时, 这些对象也会脱离持久化状态,可以被应用程序的任何层自由使用。(例如,用于 跟表示层打交道的数据传输对象data transfer object。) 瞬态(transient)以及脱管(det

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档