安博教育集团职业教育标准教材
2012-2
安博教育集团 电子工业出版社 (2012-02出版)
安博教育集团
340
《安博教育集团职业教育标准教材:Hibernate程序开发》采用理论阐述、实例项目相结合的方式,全面讲解了Hibernate内容。全书结构严谨,层次清晰,语言生动,论述精准而深刻,程序实例丰富实用。《安博教育集团职业教育标准教材:Hibernate程序开发》需要读者具有Java编程语言和HTML的基础。《安博教育集团职业教育标准教材:Hibernate程序开发》还提供了大量的实例代码,这些代码非常实用,适合解决Hibernate开发中的实际问题。 《安博教育集团职业教育标准教材:Hibernate程序开发》不仅适合用作普通高校或职业培训教材,更是Hibernate初学者和开发者的首选参考书。
目录第1章 HIBERNATE的起源 1.1 ORM框架1.2 Hibernate1.3 Hibernate的下载1.4 使用Hibernate的第一个例子1.4.1 建立guestbook表1.4.2 新建chapter01_first项目1.4.3 项目文件列表1.4.4 编写hibernate.cfg.xml1.4.5 编写Guestbook.java1.4.6 编写Guestbook.hbm.xml1.4.7 HibernateTest.java1.4.8 运行HibernateTest程序1.4.9 chapter01_first项目的运行过程本章小结习题第2章 HIBERNATE的核心接口与类 2.1 Configuration类2.1.1 Hibernate配置文件2.1.2 应用程序中设定新的属性值2.1.3 Hibernate的核心配置信息2.1.4 数据库方言类(DB Dialect Class)2.2 SessionFactory 接口2.3 Session接口2.3.1 save()方法2.3.2 get()方法2.3.3 load()方法2.3.4 update()方法2.3.5 delete()方法2.4 Transaction接口2.5 Query接口2.6 Criteria接口2.7 使用MyEclipse可视化开发Hibernate例子2.7.1 设置MyEclipse连接Oracle数据库2.7.2 新建项目并为项目增加Hibernate开发支持2.7.3 自动生成Guestbook类与映射文件2.7.4 编写HibernateSessionFactoryUtil.java文件2.7.5 编写HibernateTest.java2.7.6 程序运行结果2.7.7 使用 HQL 编辑器调试HQL语句2.8 设置Hibernate使用连接池2.8.1 Hibernate设置使用Tomcat中的连接池2.8.2 Hibernate设置使用C3P0连接池2.8.3 Hibernate设置使用自己编写的连接池2.9 Hibernate使用C3P0连接池2.10 网络留言本V2.0本章小结习题第3章 标识符属性生成策略与对象识别 3.1 数据库中的主键3.1.1 自然主键3.1.2 代理主键3.2 标识符属性3.3 标识符属性的生成策略3.3.1 increment生成策略3.3.2 identity生成策略3.3.3 sequence生成策略3.3.4 hilo生成策略3.3.5 seqhilo生成策略3.3.6 uuid生成策略3.3.7 guid生成策略3.3.8 native生成策略3.3.9 assigned生成策略3.3.10 foreign生成策略3.3.11 标识符属性生成策略的选择3.4 映射复合主键3.4.1 数据准备3.4.2 使用属性映射复合主键3.4.3 使用主键类映射复合主键3.5 对象识别3.5.1 Java中的对象识别3.5.2 数据库中数据的识别3.5.3 Hibernate中的持久化对象的识别本章小结习题第4章 持久化对象生命周期 4.1 持久化对象生命周期的状态4.1.1 Transient状态4.1.2 Persistent状态4.1.3 Detached状态4.1.4 Removed状态4.1.5 Session对象的“脏”数据检查4.2 Session接口的核心方法4.2.1 saveOrUpdate()方法4.2.2 merge()方法4.2.3 flush()方法4.2.4 close()方法4.3 不可更改的持久化对象本章小结习题第5章 OSIV与泛型DAO模式 5.1 Open Session In View(OSIV)模式5.1.1 使用Servlet过滤器实现OSIV模式5.1.2 配置web.xml文件5.2 泛型DAO的设计与实现5.2.1 编写泛型DAO接口5.2.2 编写泛型DAO的实现类5.2.3 使用GenericDao接口5.2.4 使用GenericDaoHibernate类5.3 网络留言本V2.1本章小结习题第6章 HIBERNATE的集合映射 6.1 Set映射6.1.1 Set接口6.1.2 Set映射6.2 List映射6.2.1 List接口6.2.2 List映射6.3 Bag映射6.4 IdBag映射6.5 Map映射6.5.1 Map接口6.5.2 HashMap6.5.3 LinkedHashMap6.5.4 TreeMap6.5.5 Map映射6.6 集合映射的排序6.6.1 利用<set>或<map>标签的sort属性排序6.6.2 利用SQL的order by子句排序本章小结习题第7章 组件(COMPONENT)映射 7.1 组件(Component)映射的单向关联7.2 组件映射的双向关联7.3 组件集合映射本章小结习题第8章 映射多对一(一对多)关联关系 8.1 多对一单向关联8.2 一对多单向关联8.3 级联(cascade)8.4 一对多双向关联8.5 控制反转(Inverse)本章小结习题第9章 映射一对一关联关系 9.1 共享主键关联9.2 唯一外键关联本章小结习题第10章 映射多对多关联关系 10.1 多对多单向关联10.2 多对多双向关联10.3 多对多关联中使用组件(Component)集合映射10.4 多对多关联分拆成两个一对多关联本章小结习题第11章 CRITERIA查询 11.1 准备数据11.2 Criteria的基本使用11.2.1 Criteria接口的核心方法11.2.2 Criterion接口11.2.3 对查询结果进行排序11.2.4 实现分页显示数据11.2.5 只查询一条记录11.2.6 通过所关联的对象建立查询条件11.2.7 Restrictions类11.2.8 条件“或”方式组合查询条件11.2.9 使用原生SQL语句设定查询条件11.2.10 统计函数查询11.2.11 统计函数组合查询条件11.2.12 获取多个统计函数的值11.2.13 分组查询11.2.14 分组统计11.2.15 给分组统计结果指定别名11.2.16 投影查询11.2.17 使用Property类的forName()方法实现分组统计11.3 根据示例对象进行查询本章小结习题第12章 HQL与NATIVE SQL查询 12.1 准备数据12.2 Query接口12.3 HQL基础12.3.1 查询所有持久化对象12.3.2 投影查询12.3.3 使用别名12.3.4 使用distinct12.3.5 限定查询的条件12.3.6 数据排序12.3.7 使用参数占位符12.3.8 使用统计函数12.3.9 使用函数12.4 HQL的批量更新12.5 HQL的批量删除12.6 HQL中的连接查询12.6.1 使用交叉连接12.6.2 使用内连接12.6.3 使用左外连接12.6.4 使用右外连接12.6.5 迫切内连接12.6.6 迫切左外连接12.7 命名的HQL12.8 使用SQL12.8.1 SQL查询12.8.2 SQL更新记录12.8.3 SQL删除记录12.8.4 命名的SQL12.9 Hibernate中直接使用JDBC本章小结习题第13章 HIBERNATE的事务管理 13.1 数据库事务13.1.1 事务的特性13.1.2 编程式与声明式事务13.1.3 JDBC中使用事务13.1.4 数据并发访问可能引发的问题13.1.5 事务隔离级别13.1.6 事务隔离级别的选择13.1.7 Oracle中的事务隔离级别13.2 Hibernate中的事务13.3 “锁”13.4 Hibernate中的锁定模式13.5 悲观锁13.5.1 Query对象的setLockMode()方法设置悲观锁13.5.2 Session对象的lock()方法设置悲观锁13.6 乐观锁13.6.1 版本号方式实现乐观锁13.6.2 时间戳实现乐观锁本章小结习题第14章 HIBERNATE的缓存 14.1 持久层缓存的概念14.1.1 持久层缓存的级别14.2 Hibernate的一级缓存14.2.1 一级缓存的实现原理14.2.2 一级缓存的管理14.3 Hibernate的二级缓存14.3.1 二级缓存的策略14.3.2 应用EHCache作为二级缓存14.3.3 二级缓存缓存集合对象14.3.4 二级缓存的管理14.4 查询缓存(Query Cache)14.4.1 查询缓存的实现原理14.4.2 使用查询缓存14.5 缓存对get()、load()、list()和iterator()方法的影响14.6 小结本章小结习题第15章 HIBERNATE性能优化 15.1 使用dynamic-insert与dynamic-update15.2 延迟加载(Lazy Loading)15.2.1 持久化对象的延迟加载15.2.2 集合对象的延迟加载15.2.3 属性的延迟加载15.2.4 解决org.hibernate.LazyInitializationException15.3 Hibernate的“1+N”问题本章小结习题第16章 HIBERNATE ANNOTATIONS 16.1 使用Annotations实现一对多双向关联映射16.1.1 准备数据16.1.2 当前项目增加Hibernate Annotations类库16.1.3 编写Product.java和Category.java16.1.4 编写hibernate.cfg.xml16.1.5 编写HibernateTest.java16.2 Hibernate Annotations核心注解16.2.1 注解在属性或者方法上16.2.2 Hibernate Annotations核心注解释义16.2.3 注解VS映射文件