- 1、本文档共101页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate入门 直接使用JDBC操作数据库的步骤很繁琐 JDBC操作的是关系型数据库 我们用JAVA开发程序,则使用面向对象的思想 Hibernate正是在这两种不同的模型之间建立关联,Hibernate给我们提供了利用面向对象的思想来操作关系型数据的接口 什么是关系模型? 关系模型把世界看作是由实体(Entity)和联系(Relationship)构成的。 所谓实体就是指现实世界中具有区分与其它事物的特征或属性并与其它实体有联系的对象。在关系模型中实体通常是以表的形式来表现的。表的每一行描述实体的一个实例,表的每一列描述实体的一个特征或属性。 所谓联系就是指实体之间的关系,即实体之间的对应关系。 1:1 1:n m:n 关系数据库 表 字段 主键 外键 什么是面向对象? 面向对象三大特征:封装、继承(一般与特殊)、多态(覆盖与重载) 类 对象 属性 关系 一般与特殊关系(is a) 组成(has a) 关联及其多重性 1:1 1:n m:n 双向关联与单向关联 对象关系映射 ORM( Object Relational Mapping )是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 为什么使用ORM? 面向对象的开发方法是当今企业级应用开发环境中的主流开发方法 关系数据库是企业级应用环境中永久存放数据的主流数据存储系统 字母O起源于“对象”(Object),而R则来自于“关系”(Relational)。几乎所有的程序里面,都存在对象和关系数据库。 在业务逻辑层和展现层中,我们是面向对象的。当对象信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。 当你开发一个应用程序的时候(不使用O/R Mapping),你可能会写不少数据访问层的代码,用来从数据库保存,删除,读取对象信息,等等。而这些代码写起来总是重复的。 对象-关系映射模式 类映射:类通常映射为表 属性映射:类中的属性通常映射为表中的一列 关联映射:如果类的属性如集合类,则会涉及到多个表的关联映射。 一对一 一对多 多对多(需要用一张中间表来维护关系) 什么是Hibernate? 对象/关系映射一直都是数据库技术中的难点,尽管人们提出了许多方案解决这个问题,但都不能完全做到即便利又高效。EJB的推出让人们看到了希望,但实践证明实体Bean的效率并不高,并且还十分难于为初学者理解。 由Gavin King创建的Hibernate框架,从某种程序上正在朝着正确的方向迈进,并且得到越来越多IT从业人员的认可。就像当年的Struts框架一样,Hibernate也已经在许多项目中得到广泛应用。 Hibernate由于投注了更多的精力在提升效率上,使用起来又十分方便,新版的EJB规范正在向Hibernate方向靠拢。正是由于得到广泛的认可,Hibernate已经成为程序员必须掌握的技术之一。 Hibernate能做什么? Hibernate能帮助我们利用面向对象的思想,开发基于关系型数据库的应用程序 第一:将对象数据保存到数据库 第二:将数据库数据读入对象中 基于B/S的典型三层架构 控制反转(Inversion of Control,IoC)与依赖注入(Dependency Injection,DI) Hibernate与O、R之间的关系 Hibernate体验 Hibernate体验 Hibernate体验 将类的映射文件加入Hibernate 创建数据库表 将对象保存到数据库 认识Hibernate的基本组件 Hibernate核心接口 Configuration SessionFactory Transaction Session 持久化对象的状态Transient 持久化对象的生命周期 Session中的方法 Session中的方法 Session中的方法 清除缓存对象 Query Hibernate的对象关系映射 hibernate-mapping元素 class元素 主键 - id 主键生成策略generator 普通属性映射 - property 集合类映射 List集合映射 定义实体类 Set集合映射 定义实体类 Bag标签集合映射 定义实体类 Map集合映射 定义实体类 组件映射 组件映射 多对一关联映射 - many-to-one 重要属性cascade cascade实际上意味着什么? 无cascade配置时正确的java执行代码 添加cascade配置 一对多关联映射 (one-to-many) 一对
文档评论(0)