×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
精通JPA与Hibernate:Java对象持久化技术详解—微课视频版

精通JPA与Hibernate:Java对象持久化技术详解—微课视频版

1星价 ¥92.4 (5.5折)
2星价¥92.4 定价¥168.0
暂无评论
图文详情
  • ISBN:9787302576273
  • 装帧:70g胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:744
  • 出版时间:2021-04-01
  • 条形码:9787302576273 ; 978-7-302-57627-3

本书特色

本书详细介绍JPA与Hibernate的实际运用方法,深入阐述ORM的映射技术,分享优化数据库访问代码的各种技巧,提供基于Spring+Tomcat+Hibernate+MySQL的综合范例,并附赠500分钟视频讲解及丰富的配套学习资源。

内容简介

本书详细介绍了运用JPA以及目前很成熟的Hibernate 5版本进行Java对象持久化的技术。通过本书,读者不仅能掌握用JPA和Hibernate工具对这两种模型进行映射的技术,还能获得设计与开发Java对象模型和关系数据模型的优选经验。本书将帮助读者编写出具有合理的软件架构以及好的运行性能和并发性能的实用应用程序。书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的应用实例,并提供了详细的开发和部署步骤。无论对于Java开发的新手还是行家来说,本书都是精通Java对象持久化技术的推荐实用手册。

目录

目录 源代码 第1章Java应用分层架构及软件模型 1.1应用程序的分层体系结构 1.1.1区分物理分层和逻辑分层 1.1.2软件层的特征 1.1.3软件分层的优点 1.1.4软件分层的缺点 1.1.5Java应用的持久化层 1.2软件的模型 1.2.1概念模型 1.2.2关系数据模型 1.2.3域模型 1.3小结 1.4思考题 第2章Java对象持久化技术概述 2.1直接通过JDBC API来持久化实体域对象 2.2ORM简介 2.2.1对象关系映射的概念 2.2.2描述对象关系映射信息的元数据 2.2.3访问ORM中间件的API 2.2.4常用的ORM中间件 2.3实体域对象的其他持久化模式 2.3.1主动域对象模式 2.3.2CMP模式 2.3.3运用ORM的JPA模式 2.4小结 2.5思考题 第3章**个helloapp应用 3.1创建Hibernate的配置文件 3.1.1用Java属性文件作为Hibernate配置文件 3.1.2XML格式的Hibernate配置文件 3.2创建持久化类 3.3创建数据库Schema 3.4创建对象关系映射文件 X XI 3.4.1映射文件的文档类型定义(DTD) 3.4.2把Customer持久化类映射到CUSTOMERS表 3.5通过Hibernate API操纵数据库 3.5.1Hibernate的初始化 3.5.2Hibernate的遗留初始化方式 3.5.3访问Hibernate的Session接口 3.6运行helloapp应用 3.6.1创建用于运行本书范例的系统环境 3.6.2创建helloapp应用的目录结构 3.6.3把helloapp应用作为独立应用程序运行 3.6.4把helloapp应用作为Java Web应用运行 3.7小结 3.8思考题 第4章使用注解和JPA 4.1创建包含注解的持久化类 4.2方式一: 注解和Hibernate API 4.2.1创建Hibernate配置文件 4.2.2自动创建数据库表 4.2.3使用Hibernate API 4.3方式二: 注解和JPA API 4.3.1创建JPA的配置文件 4.3.2使用JPA API 4.3.3从JPA API中获得Hibernate API 4.4方式三: 对象关系映射文件和JPA API 4.5小结 4.6思考题 第5章对象关系映射基础 5.1持久化类的属性及访问方法 5.1.1基本类型属性和包装类型属性 5.1.2访问持久化类属性的方式 5.1.3在持久化类的访问方法中加入程序逻辑 5.1.4设置派生属性 5.1.5控制insert和update语句 5.1.6映射枚举类型 5.2处理SQL引用标识符 5.3创建命名策略 5.4设置数据库Schema 5.5运行范例程序 5.6使用Hibernate的对象关系映射文件 5.6.1设置访问持久化类属性的方式 5.6.2映射Customer类的虚拟name属性 5.6.3忽略Customer类的avgPrice属性 5.6.4映射Customer类的sex属性 5.6.5映射Customer类的totalPrice派生属性 5.6.6控制insert和update语句 5.6.7映射Customer类的description属性 5.6.8设置自定义的命名策略 5.6.9设置数据库Schema 5.6.10设置类的包名 5.7小结 5.8思考题 第6章映射对象标识符 6.1关系数据库按主键区分不同的记录 6.1.1把主键定义为自动增长标识符类型 6.1.2从序列(Sequence)中获取自动增长的标识符 6.2Java语言按内存地址区分不同的对象 6.3Hibernate用对象标识符(OID)来区分对象 6.4Hibernate的内置标识符生成器的用法 6.4.1increment标识符生成器 6.4.2identity标识符生成器 6.4.3sequence标识符生成器 6.4.4table标识符生成器 6.4.5auto标识符生成器 6.5映射自然主键 6.5.1映射单个自然主键 6.5.2映射复合自然主键 6.6映射派生主键 6.7使用Hibernate的对象关系映射文件 6.7.1increment标识符生成器 6.7.2identity标识符生成器 6.7.3sequence标识符生成器 6.7.4auto(native)标识符生成器 6.7.5映射单个自然主键 6.7.6映射复合自然主键 6.7.7映射派生主键 6.8小结 6.9思考题 XII XIII 第7章映射一对多关联关系 7.1映射多对一单向关联关系 7.1.1TransientPropertyValueException异常 7.1.2级联持久化 7.2映射一对多双向关联关系 7.2.1建立持久化对象之间的关联关系 7.2.2级联删除 7.2.3父子关系 7.3映射一对多双向自身关联关系 7.4改进持久化类 7.5使用Hibernate的对象关系映射文件 7.5.1映射多对一单向关联关系 7.5.2映射一对多双向关联关系 7.5.3映射一对多双向自身关联关系 7.6小结 7.7思考题 第8章通过JPA和Hibernate操纵对象(上) 8.1Java对象在JVM中的生命周期 8.2理解持久化缓存 8.2.1持久化缓存的作用 8.2.2脏检查及清理缓存的机制 8.3Java对象在持久化层的状态 8.3.1临时对象(Transient Object)的特征 8.3.2持久化对象(Persistent Object)的特征 8.3.3被删除对象(Removed Object)的特征 8.3.4游离对象(Detached Object)的特征 8.4Session接口的用法 8.4.1Session的save()方法和persist()方法 8.4.2Session的load()方法和get()方法 8.4.3Session的update()方法 8.4.4Session的saveOrUpdate()方法 8.4.5Session的merge()方法 8.4.6Session的delete()方法 8.4.7Session的replicate()方法 8.4.8Session的byId()方法 8.4.9Session的refresh()方法 8.5EntityManager接口的用法 8.6通过Hibernate API级联操纵对象图 8.6.1级联保存临时对象 8.6.2更新持久化对象 8.6.3持久化临时对象 8.6.4更新游离对象 8.6.5遍历对象图 8.7通过JPA API级联操纵对象图 8.8小结 8.9思考题 第9章通过JPA和Hibernate操纵对象(下) 9.1与触发器协同工作 9.2利用拦截器(Interceptor)生成审计日志 9.3Hibernate的事件处理API 9.4利用Hibernate的Envers生成审计日志 9.5JPA的事件处理API 9.6批量处理数据 9.6.1通过EntityManger或Session来进行批量操作 9.6.2通过StatelessSession来进行批量操作 9.6.3通过JPQL来进行批量操作 9.6.4直接通过JDBC API来进行批量操作 9.7通过JPA访问元数据 9.8调用存储过程 9.9小结 9.10思考题 第10章映射组成关系 10.1建立精粒度对象模型 10.2建立粗粒度关系数据模型 10.3映射组成关系 10.3.1区分值(Value)类型和实体(Entity)类型 10.3.2在应用程序中访问具有组成关系的持久化类 10.4映射复合组成关系 10.5使用Hibernate的对象关系映射文件 10.5.1映射组成关系 10.5.2映射复合组成关系 10.6小结 10.7思考题 XIV XV 第11章Hibernate的映射类型 11.1Hibernate的内置映射类型 11.1.1Java基本类型以及数字类型的Hibernate映射类型 11.1.2Java时间和日期类型的Hibernate映射类型 11.1.3Java大对象类型的Hibernate映射类型 11.1.4JDK自带的个别Java类的Hibernate映射类型 11.1.5使用Hibernate内置映射类型 11.2客户化映射类型 11.2.1用客户化映射类型取代Hibernate组件 11.2.2用UserType映射枚举类型 11.2.3实现CompositeUserType接口 11.2.4运行本节范例程序 11.3使用JPA Converter(类型转换器) 11.4操纵Blob和Clob类型数据 11.5小结 11.6思考题 第12章映射继承关系 12.1继承关系树的每个具体类对应一个表 12.1.1用注解来映射 12.1.2用对象关系映射文件来映射 12.1.3操纵持久化对象 12.1.4其他映射方式 12.2继承关系树的根类对应一个表 12.2.1用注解来映射 12.2.2用对象关系映射文件来映射 12.2.3操纵持久化对象 12.3继承关系树的每个类对应一个表 12.3.1用注解来映射 12.3.2用对象关系映射文件来映射 12.3.3操纵持久化对象 12.4选择继承关系的映射方式 12.5映射复杂的继承树 12.5.1用注解来映射 12.5.2用对象关系映射文件来映射 12.6映射多对一多态关联 12.7小结 12.8思考题 第13章Java集合类 13.1Set(集) 13.1.1Set的一般用法 13.1.2HashSet类 13.1.3TreeSet类 13.1.4向Set中加入持久化类的对象 13.2List(列表) 13.3Map(映射) 13.4小结 13.5思考题 第14章映射值类型集合 14.1映射Set(集) 14.2映射Bag(包) 14.3映射List(列表) 14.4映射Map(映射) 14.5对集合排序 14.5.1在数据库中对集合排序 14.5.2在内存中对集合排序 14.6映射组件类型集合 14.7小结 14.8思考题 第15章映射实体关联关系 15.1映射一对一关联 15.1.1按照外键映射 15.1.2按照主键映射 15.2映射单向多对多关联 15.3映射双向多对多关联关系 15.3.1用@ManyToMany注解映射双向关联 15.3.2使用组件类集合 15.3.3把多对多关联分解为两个一对多关联 15.4小结 15.5思考题 XVI XVII 第16章Hibernate的检索策略 16.1Hibernate的检索策略简介 16.2类级别的检索策略 16.2.1立即检索 16.2.2延迟检索 16.3一对多和多对多关联的检索策略 16.3.1立即检索(FetchType.EAGER) 16.3.2多查询语句立即检索(FetchMode.SELECT) 16.3.3延迟检索(FetchType.LAZY) 16.3.4增强延迟检索(LazyCollectionOption.EXTRA) 16.3.5批量检索(@BatchSize注解) 16.3.6使用子查询语句(FetchMode.SUBSELECT) 16.4多对一和一对一关联的检索策略 16.4.1立即检索(FetchType.EAGER) 16.4.2延迟检索(FetchType.LAZY) 16.4.3无代理延迟检索 16.4.4批量检索(@BatchSize注解) 16.5控制左外连接检索的深度 16.6在程序中动态指定立即左外连接检索 16.7定义和检索对象图 16.8用@FecthProfile注解指定检索规则 16.9属性级别的检索策略 16.10小结 16.11思考题 第17章检索数据API(上) 17.1检索方式简介 17.1.1JPQL检索方式 17.1.2QBC检索方式 17.1.3本地SQL检索方式 17.1.4关于本章范例程序 17.1.5使用别名 17.1.6多态查询 17.1.7对查询结果排序 17.1.8分页查询 17.1.9检索单个对象(getSingleResult()方法) 17.1.10按主键依次处理查询结果(属于Hibernate的功能) 17.1.11可滚动的结果集(属于Hibernate的功能) 17.1.12绑定参数 17.1.13设置查询附属事项 17.1.14定义命名查询语句 17.1.15调用函数 17.1.16元模型类(MetaModel Class) 17.2设定查询条件 17.2.1比较运算 17.2.2范围运算 17.2.3字符串模式匹配 17.2.4逻辑运算 17.2.5集合运算 17.2.6case when语句 17.3小结 17.4思考题 第18章检索数据API(下) 18.1连接查询 18.1.1默认情况下关联级别的运行时检索策略 18.1.2立即左外连接 18.1.3左外连接 18.1.4立即内连接 18.1.5内连接 18.1.6立即右外连接 18.1.7右外连接 18.1.8交叉连接 18.1.9隐式连接 18.1.10关联级别运行时的检索策略 18.1.11用Tuple包装查询结果 18.2投影查询 18.2.1用JavaBean包装查询结果 18.2.2过滤查询结果中的重复元素 18.3报表查询 18.3.1使用聚集函数 18.3.2分组查询 18.3.3优化报表查询的性能 18.4高级查询技巧 18.4.1动态查询 18.4.2集合过滤 18.4.3子查询 18.4.4本地SQL查询 18.5查询性能优化 18.5.1Hibernate API中Query接口的iterate()方法 18.5.2Hibernate的查询缓存 18.6小结 18.7思考题 XVIII XIX 第19章Hibernate高级配置 19.1配置数据库连接池 19.1.1使用默认的数据库连接池 19.1.2使用配置文件指定的数据库连接池 19.1.3从容器中获得数据源 19.1.4由Java应用本身提供数据库连接 19.2配置事务类型 19.3把SessionFactory与JNDI绑定 19.4配置JNDI 19.5配置日志 19.6使用XML格式的配置文件 19.7小结 19.8思考题 第20章声明数据库事务 20.1数据库事务的概念 20.2声明事务边界的方式 20.3在mysql.exe客户程序中声明事务 20.4Java应用通过JDBC API声明JDBC事务 20.5Java应用通过Hibernate API声明JDBC事务 20.5.1处理异常 20.5.2Session与事务的关系 20.5.3设定事务超时 20.6Java应用通过Hibernate API声明JTA事务 20.7Java应用通过JTA API声明JTA事务 20.8小结 20.9思考题 第21章处理并发问题 21.1多个事务并发运行时的并发问题 21.1.1**类丢失更新 21.1.2脏读 21.1.3虚读 21.1.4不可重复读 21.1.5第二类丢失更新 21.2数据库系统的锁的基本原理 21.2.1锁的多粒度性及自动锁升级 21.2.2锁的类型和兼容性 21.2.3死锁及其防止办法 21.3数据库的事务隔离级别 21.3.1在mysql.exe程序中设置隔离级别 21.3.2在应用程序中设置隔离级别 21.4在应用程序中采用悲观锁 21.4.1利用数据库系统的独占锁来实现悲观锁 21.4.2由应用程序实现悲观锁 21.5利用版本控制来实现乐观锁 21.5.1使用整数类型的版本控制属性 21.5.2使用时间戳类型的版本控制属性 21.5.3为持久化对象设置锁 21.5.4强制更新版本 21.6实现乐观锁的其他方法 21.7小结 21.8思考题 第22章管理Hibernate的缓存 22.1缓存的基本原理 22.1.1持久化层的缓存的范围 22.1.2持久化层的缓存的并发访问策略 22.2Hibernate的二级缓存结构 22.3管理Hibernate的**级缓存 22.4管理Hibernate的第二级缓存 22.4.1获得EHCache缓存插件的类库 22.4.2在persistence.xml文件中配置第二级缓存 22.4.3在持久化类中启用实体数据缓存、自然主键缓存和集合缓存 22.4.4设置EHCache的ehcache.xml配置文件 22.4.5获取第二级缓存的统计信息 22.4.6设置第二级缓存的读写模式 22.4.7在程序中控制第二级缓存 22.4.8查询缓存 22.5小结 22.6思考题 XX XXI 第23章管理Session和实现对话 23.1管理Session对象的生命周期 23.1.1Session对象的生命周期与本地线程绑定 23.1.2Session对象的生命周期与JTA事务绑定 23.2实现对话 23.2.1使用游离对象 23.2.2使用手动清理缓存模式下的Session 23.2.3通过JPA API来实现对话 23.3小结 23.4思考题 第24章Spring、JPA与Hibernate整合 24.1本章范例所涉及软件的Java类库 24.2设置Spring的配置文件 24.3编写本章范例的Java类 24.3.1编写Customer实体类 24.3.2编写CustomerDao数据访问接口和类 24.3.3编写CustomerService业务逻辑服务接口和类 24.3.4编写测试类Tester 24.4小结 第25章运用Spring和Hibernate创建购物网站 25.1实现业务数据 25.2实现业务逻辑 25.3控制层访问模型层 25.4netstore应用的订单业务 25.5小结 附录A标准SQL语言的用法 A.1数据完整性 A.1.1实体完整性 A.1.2域完整性 A.1.3参照完整性 A.2DDL数据定义语言 A.3DML数据操纵语言 A.4DQL数据查询语言 A.4.1简单查询 A.4.2连接查询 A.4.3子查询 A.4.4联合查询 A.4.5报表查询 附录BJava语言的反射机制 附录C发布和运行netstore应用 附录D思考题答案 附录E书中涉及软件获取途径
展开全部

作者简介

孙卫琴,知名IT作家和Java专家,毕业于上海交通大学,随后主要从事基于Java的软件开发工作,在此其间还从事Java方面的培训和咨询工作。2002年开始Java技术领域的创作,文风清晰严谨、深入浅出,深受读者欢迎,其多部作品的销量在同类书籍中经常位居全国榜首。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航