登录/注册
《Hibernate逍遥游记》.pdf
2023-11-29,文件大小: 2.91M, 下载: 0
下载
下载地址加载中.... 下载教程
提示: 此文件暂无参考内容, 请自行判断再确认下载!!
作者很懒没有写任何内容
Preface
罗马只有一个,大路却有多条。看上去,似乎到罗马很容易,反正路多嘛。不过,路多却容易迷失方向。当你在Java领域中摸爬滚打几年后,发现自己在无数条道路上走了很久,却不知道罗马何日才能到达,甚至连罗马的方向都不知道,这时你肯定会很失落。 很遗憾,在这个简短的出版说明文章里面,我们无法告诉你每一条连贯的、不费周折的通往罗马的道路该如何走。或许,通过“Java开发专家”系列中的某本书,你可以找到属于你的正确道路。在一般情况下,我们不会就某一项很窄的话题来单独写一本书,我们还是希望通过我们的一些专业和智慧,尽力把一些相关技术整合起来,用较为简明的方式表达出来,最后由你来选择。 这里有句话与大家共勉:少走弯路,就是捷径!
★ “Java开发专家”的奉献
犹如在上面那个框图中展现的那样,我们希望在各个层面、各个方向上都能给读者奉献出优秀的图书作品,全面体现技术与应用的结合。从宏观上看,我们会从语言、IDE、环境、数据库、架构与应用、安全、项目与测试等方面进行选择,选出一些读者迫切需要的技术来先行规划。 “Java开发专家”虽然新蓓初绽,但因其源自盛放的“开发专家之Sun ONE”系列而根基稳健,两个系列会有一段很长的并行时间,我们会用一种优化的方式来保证读者的顺利选择。无论哪一个系列,必定都有大家喜欢的图书。 在技术上,有着持久化的方法,在学习上,也需要有持久化的精神。 从“开发专家之Sun ONE”到“Java开发专家”,希望可以带给你持久化的动力。
联系方式 咨询电话:(010)68134545 88254160 电子邮件:support@fecit.com.cn 服务网址:http://www.fecit.com.cn http://www.fecit.net 通用网址:计算机图书、飞思、飞思教育、飞思科技、FECIT


IV



前 言
在Java领域,访问关系数据库的最原始、最直接的方法是借助JDBC API。这种方式的优点是运行效率高,缺点是在Java程序代码中嵌入大量SQL语句,使得项目难以维护。在开发具有分层结构的企业级Java应用时,如图P-1所示,可以通过JDBC API来开发单独的持久化层,把数据库访问操作封装起来,提供简洁的API,供业务逻辑层统一调用。但是,如果关系数据模型非常复杂,那么直接通过JDBC API来实现持久化层需要有专业的知识。对于企业应用的开发人员,花费大量时间从头开发自己的持久化层不是很可行。

图P-1 从业务逻辑层分离出单独的持久化层
幸运的是,目前在持久化层已经有好多种现成的持久化软件可供选用,有些是商业性的,如TopLink;有些是非商业性的,如JDO和Hibernate。Hibernate是一个基于Java的开放源代码的持久化软件,它对JDBC做了轻量级封装,不仅提供ORM(Object Relation Mapping,对象-关系映射)服务,还提供数据查询和数据缓存功能,Java开发人员可以方便地通过Hibernate API来操纵数据库。 现在,越来越多的Java开发人员通过Hibernate来访问关系数据库,以节省和访问数据库有关的30%的JDBC编程工作量。 本书结合大量典型的实例,由浅入深地介绍运用目前最成熟的Hibernate 3.3版本来访问关系数据库的技术。 本书在表述方面,引入了中国传统文化中家喻户晓的《西游记》人物孙悟空,以他学习Hibernate为主线,以为花果山实现信息化为案例,带领读者逐步领略Hibernate技术的种种神通妙用,大大增加了书的趣味性。

V



Foreword
本书的组织结构和主要内容
本书按照由浅入深、前后照应的顺序来安排内容,主要包含以下内容。 1.Hib
ernate入门(第1和第2章) 第1和第2章为入门篇。第1章概要介绍访问关系数据库的各种途径,通过比较,帮助读者理解通过Hibernate来访问数据库的优势。 第2章以一个简单的Hibernate应用实例
—monkeys应用为例,引导读者把握设计、开发和部署Hibernate应用的整体流程,理解Hibernate在分层的软件结构中所处的位置。 2.对
象-关系映射技术(第3、4、5、8、9、10、11、12和第13章) 本书重点介绍的内容之一就是如何运用Hibernate工具,把对象模型映射到关系数据模型,相关章节包括: 第3章:介绍对象-关系映射的基础知识。 第4章:介绍对象标识符的映射方法。 第5章:介绍一对多关联关系的映射方法。 第8章:介绍组成关系的映射方法。 第9章:介绍Java类型、SQL类型和Hibernate映射类型之间的对应关系。 第10章:介绍继承关系的映射方法。 第11章:介绍Java集合类的用法,这一章主要是为第12章做铺垫的。 第12章:介绍Java集合的映射方法。 第13章:介绍一对一和多对多关联关系的映射方法。 3.通
过Hibernate API操纵数据库(第6和第16章) 第6章介绍运用Hibernate API来保存、更新、删除、加载或查询Java对象的方法,并介绍Java对象在持久化层的4种状态:临时状态、持久化状态、游离状态和删除状态。深入理解Java对象的4种状态及状态转化机制,是编写健壮的Hibernate应用程序的必要条件。 第16章介绍Session的生命周期的管理方式,以及会话的实现方式。这一章的内容将帮助读者简化Hibernate应用的程序代码,并且为应用设计合理的软件架构。 4.Hib
ernate的检索策略和检索方式(第7章) 第7章介绍Hibernate的各种检索策略,对每一种检索策略,都介绍它的适用

VI



Foreword
场合。合理运用Hibernate的检索策略及检索技巧,是提高Hibernate应用性能的重要手段。第7章还介绍HQL查询语句的语法,以及QBC API的基本使用方法。 5.数
据库事务与并发(第14和第15章) 第14章先介绍数据库事务的概念,接着介绍运用Hibernate API来声明事务边界的方法。 第15章介绍在并发环境中出现的各种并发问题,然后介绍采用悲观锁或乐观锁来避免并发问题的方法。
本书的范例程序
为了使读者不但能掌握用Hibernate来持久化Java对象的理论,并且能迅速获得开发Hibernate应用的实际经验,完全掌握并会灵活运用Hibernate技术,本书几乎为每一章都提供了完整的Hibernate应用范例,在本书配套光盘中包含了所有范例源文件。 为了方便初学者顺利地运行本书的范例,光盘上提供的所有范例程序都是可运行的。读者只要把它们复制到本地机器上,就能够运行,不需要再做额外的配置。此外,在每个范例的根目录下还提供了ANT工具的工程文件build.xml,它用于编译和运行范例程序。
这本书是否适合您
把Java对象持久化到关系数据库,几乎是所有企业Java应用必不可少的重要环节,因此本书适用于所有从事开发Java应用的读者。Hibernate是Java应用和关系数据库之间的桥梁,阅读本书,要求读者具备Java语言和关系数据库的基础知识。 实践是掌握Hibernate的好方法。为了让读者彻底掌握并学会灵活运用Hibernate,本书为每一章都提供了典型的范例,在本书配套光盘上提供了完整的源代码,以及软件安装程序。建议读者在学习Hibernate技术的过程中,善于将理论与实践相结合,达到事半功倍的效果。 本书与作者的另一本书《精通Hibernate:Java对象持久化技术详解》一书相比,前者的特色在于化繁为简,以通俗浅显的语言介绍Hibernate的主要技术及对象-关系映射的核心思想。后者则更为详细全面地阐述Hibernate的各种技术,并且介绍运用Hibernate来开发项目的高级技巧和性能优化的细节。前者提纲挈领,后

VII



Foreword
者包罗万象,两者各有千秋,相得益彰。
光盘使用说明
本书配套光盘包含以下目录。 1.soft
ware目录 在该目录下包含了本书内容涉及的所有软件的最新版本的安装程序,包括: (1)Hibernate核心软件包(Hibernate 3.3)。 (2)Hibernate工具软件包(HibernateTools 3.2)。 (3)MySQL服务器的安装软件(MySQL 5)。 (4)MySQL的JDBC驱动程序(Mysql-Connector-Java-3.1.7) (5)ANT的安装软件(Ant 1.7)。 2.sourceco
de目录 在该目录下提供了本书所有的源程序。 本书在编写过程中得到了飞思数字创意出版中心、JavaThinker.org网站的支持与帮助,在此表示衷心的感谢!参与编写的人员有孙卫琴、李洪成、曹文伟、李红军、孙定金、曹汉玉、张玲、吴厚鹏、刘琨、赵鹏、赵明、张黎平、刘巧云、李平安、王秀龄等十五人。尽管我们尽了最大努力,但本书难免会有不妥之处,欢迎各界专家和读者朋友批评指正。以下网址是作者为本书提供的技术支持网址,读者可通过它下载与本书相关的资源(如源代码、软件安装程序和讲义等),还可以与其他读者交流学习心得,以及对本书提出宝贵意见: http://www.javathinker.org/hibernate_taste.jsp




VIII





Contents
第4章 映射对象标识符.............................................................................57 4.1 关系数据库按主键区分不同的记录.......................................................58
4.1.1 把主键定义为自动增长标识符类型...........................................................59 4.1.2 从序列(Sequence)中获取自动增长的标识符.........................................59
4.2 Java语言按内存地址区分不同的对象...................................................60 4.3 Hibernate用对象标识符(OID)来区分对象.........................................61 4.4 Hibernate的内置标识符生成器的用法......
内容系创作者发布,涉及安全和抄袭问题属于创作者个人行为,不代表夹子盘观点,可联系客服删除。
夹子盘