



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
写在前面:这是我看课本Hibernate这一块的时候觉得可能会考到的东西,不要对这个抱过多的期望。这份文件只是从我个人的角度来写的。但愿这份文档能够真正的帮上你的忙,祝你好运!祝你永远快乐!1. Hibernate被称为低侵入式的原因实际上,Hibernate直接采用了POJO(普通、传统java对象)作为PO(持久化对象) PO=POJO+映射文件2. Hibernate配置文件2种方式*.properties的属性文件或XML文件配置3. Hibernate的XML配置文件默认文件名为:hibernate.cfg.xml,当程序员调用Configuration对象的configure()方法时,Hibernate将自动加载该文件4. Hibernate操作数据库PO(持久化对象)只有在Session的管理下才可完成数据库访问。为了使用Hibernate进行持久化操作,操作步骤: 开发持久化对象,由POJO加映射文件组成 获取Configuration 获取SessionFactory 获取Session,打开事务 用面向对象方式操纵数据库 关闭事务,关闭session5. Hibernate中PO(持久化对象)与Session关联关系l 瞬态、持久化、托管 详见课本P377l Hibernate持久化实例的状态实例的状态演化图,改变持久化状态的方法:详见课本P394P395尤其要注意 “提示”“注意”。l 瞬态状态 变成 持久化状态 的方法 利用Save 和persist方法 详见课本P394l Save 和persist方法区别 参考 课本P395“提示”l Load 加载一个持久化实例,可以根据持久化类的标识属性值加载持久化实例实质根据主键从数据表中加载一条新的记录l Load()方法和get()方法的区别 参考 课本P395 “注意”l 延迟加载 P3966. Hibernate的优点不再需要使用编写SQL语句,而是允许采用OO(面向对象)方式访问数据库JDBC访问过程中大量使用checked异常被包装成Hibernate的Runtime异常,从而不再要求程序处理所有异常。7. Hibernate操作数据库对PO操作必须在Session管理下才能同步到数据库。Session由SessionFactory工厂产生,SessionFactory对象由Configuration对象生成,Configuration对象负责加载Hibernate配置文件8. Hibernate持久化类应该遵守的规则P392 Hibernate默认采用属性的方式来访问持久化类额属性 提供一个无参数的构造方法 提供一个标识属性 使用非final类 重写equals()和hasCode()方法9. Hibernate通常处理修改的流程 详见课本P396从数据库里加载记录,将信息发送到表现层以供用户修改,将所做修改重新保存到数据库。10. Hibernate提供了保存修改的方法 详见课本P396merge()、updateOrSave()、Update()11. Hibernate的映射文件 l 映射文件结构 详见课本P397P400l 映射主键 详见课本:P400Pl 映射集合属性 详见课本P407-417两个持久化对象不能共享同一个集合元素的引用l List集合属性 :对于同一个持久化对象而言,它包含的集合元素的元素的索引是不会重复的,因此List集合属性可以用关联持久化对象的外键和集合索引列作为联合主键。P411l 数组属性:数组与List用法的区别只是List的长度可以变化、而数组的长度不可以变而已 数组属性可以用关联持久化对象的外键和集合索引列作为联合主键P411l Set集合属性:set集合没有索引列,则以关联持久化类的外键和元素列作为联合主键,前提元素列不能为空 P412、P414l Map集合属性:详见课本P416l 集合属性的性能分析 详见课本P418Hibernate对集合属性默认采用延迟加载l 映射数据库对象 详见课本P422生成元素的两种形式12. Hibernate综合Hibernate完全以面向对象的方式来操作数据库Hibernate关联映射 课本P443 13. Hibernate中使用HQL查询使用HQL查询步骤:P486获取Hibernate Session对象编写HQL语句(HQL语句本生不区分大小写)以HQL语句作为参数,调用Session的createQuery方法创建查询对象如果HQL语句包含参数,则调用Query的setXxx方法为参数赋值调用Query对象的list等方法返回查询结果列表14. Hibernate HQL条件查询步骤 详见课本P500获取Hibernate的Session对象以Session对象创建Criteria对象使用Restrictions的静态方法创建Criterion查询条件向Criteria查询中添加Criterion查询条件执行Criteria的list等方法返回结果集15. Hibernate SQL查询 详见课本P508SQL查询步骤查询种类:标量查询、实体查询16. Hibernate 数据过滤使用Hibernate的步骤: 详见课本P5181. 定义过滤器。使用filter-def元素定义过滤器2. 使用过滤器。使用filter使用过滤器3. 代码中启用过滤器前两步都是在Hibernate的映射文件中完成的17. Hibernate 中事物控制事物具备4个特性:原子性、一致性、隔离性和持续性 详见课本P520如何保证session对象处于打开状态:详见课本P52318. Hibernate 的事件机制1. Hibernate的事件框架由两部分组成 详见课本P524拦截器机制:对于特定动作拦截,回调应用中的特定动作事件系统:重写Hibernate的事件监听器2. Hibernate 拦截器的实现步骤: 详见课本P524定义实现Interceptor接口的拦截器类通过Session启用拦截器,或者通过Configuration启用全局拦截器3. Hibernate 事件系统使用步骤 详见课本P527实现自己的事件监听器类注册自定义事件监听器类,代替系统默认的事件监听4. Hibernate 事件系统的监听器 详见课本P5271. 当Session调用某个方法时,Hibernate Session会生成对应的事件,并激活对应事件监听器。2. 监听器是单例模式3. 实现用户自定义监听器的3种方法实现对应的监听器接口继承事件适配器继承系统默认的事件监听器4. 注册用户自定义监听器的2种方法 详见课本P528编程式、声明式5. 系统默认监听器实现的处理过程,完成了所有的数据持久化操作,包括插入、修改等操作。如果用户自定义了自己的监听器,则意味着用户必须完成对象的持久化操作。19. Hibernate 5种数据查询方式OID、QBC、HQL、本地SQL、导航对象图20. Hibernate中HQL与SQL的不同点HQL是面向对象的查询语言,而sql是面向数据库的查询语言HQL操作的对象是类、实例、属性等。Sql的操作对象是数据表、列(字段)等数据库对象21. Hibernate中 什么是HQL是Hibernate Query Language的缩写,它是一种面向对象的查询语言,它可以查询以对象形式存在的数据。22. Hibernate的核心接口 Configuration、SessionFactory、Session、Transaction、Query和Criteria Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。) SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。 Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Conf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论