已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hibernate核心API CoreAPIforHibernate 杨少波 njtuyang 中科院计算所职业培训中心 Hibernate核心API 在本讲您能了解如下知识点 TheEmphasesinTeachingMaterials 持久实例的生命周期状态Session接口Transaction接口SessionFactory接口Configuration接口应用中所需要的JAR类库 1 Hibernate中的持久化对象的生命周期 1 提供对象状态管理的目的使开发者不再需要理会底层数据库系统的细节使用Hibernate的开发者应该总是关注对象的状态 state 不必考虑SQL语句的执行 2 Hibernate仅仅定义了三种状态 瞬时 持久和脱管 对客户端代码隐藏了其内部实现的复杂性 3 三种状态相互转换的说明 2 核心API介绍 Session接口 1 它是轻量级的类在Hibernate中 实例化的Session是一个轻量级的类 创建和销毁它都不会占用很多资源 这在实际项目中确实很重要 因为在客户程序中 可能会不断地创建以及销毁Session对象 如果Session的开销太大 会给系统带来不良影响 2 但它是非线程安全的值得注意的是Session对象是非线程安全的 因此最好是一个线程只创建一个Session对象 将它设计为局部对象 3 Session看作介于数据连接与事务管理一种中间接口我们可以将session想象成一个持久对象的缓冲区 Hibernate能检测到这些持久对象的改变 并及时刷新数据库 4 每一个Session实例和一个数据库事务绑定通常将每一个Session实例和一个数据库事务绑定 也就是说 每执行一个数据库事务 操作 都应该先创建一个新的Session实例 如果事务执行中出现异常 应该撤销事务 同时不论事务执行成功与否 最后都应该调用Session的close 方法 从而释放Session实例占用的资源 5 如何获得Session对象首先创建SessionFactory对象 应用程序如果访问多个数据源时 则应该产生多个SessionFactory 但是仅仅为了服务于某个请求时 不要创建一个新的SessionFactory 因为创建SessionFactory需要耗费大量的资源 然后根据SessionFactory再创建Session对象 6 Session的编程规则 需要随时更新和释放注意 应该要session close 语句放在finally语句块中 7 Sessin接口中针对单条记录的基本的CURD操作方法save 方法 把Java对象保存数据库中update 方法 更新数据库中的Java对象delete 方法 把Java对象从数据库中删除load 方法 从数据库中加载Java对象find 方法 从数据库中查询Java对象 3 核心API介绍 Transaction接口 1 Transaction接口是一个可选的API事务将应用代码从下层的事务实现中抽象出来 这可能是一个JDBC事务 一个JTA用户事务等这样将允许应用通过一组一致的API控制事务边界 2 定义 注意 该接口有多个不同的事务的实现类 3 从本地事务切换到分布式事务的方法 因为让持久层具备可移植性是人们的理想 Hibernate提供了一套称为Transaction的封装API 用来把部署环境中的本地事务管理系统转换到Hibernate事务上 4 为什么要提供该Transaction接口 数据库类型和个数Transaction接口是对实际事务实现的一个抽象 之所以这样设计是能让开发者能够使用一个统一事务的操作界面 使得自己的项目可以在不同的环境和容器之间方便地移值 5 事务编程的基本格式 6 注意在事务编程中一定要进行事务提交 1 利用工厂类SessionFactory中取得Session的实例 2 SessionFactory并不是轻量级的但要注意的是SessionFactory并不是轻量级的 实际上它的设计者的意图是让它能在整个应用中共享 3 每个数据存储源对应创建一个SessionFactory 单例 4 核心API介绍 SessionFactory接口 4 SessionFactory的实现类SessionFactory的实现类中定义了许多集合类型的属性它们用于存放Hibernate配置信息 映射元数据信息等 5 SessionFactory的缓存可分为两类 内置缓存和外置缓存 SessionFactory的内置缓存中存放了Hibernate配置信息和映射元数据信息 同时也缓存了Hibernate自动生成的SQL语句等 SessionFactory的外置缓存是一个可配置的缓存插件在默认情况下 SessionFactory不会启用这个缓存插件 外置缓存能存放大量数据库数据的拷贝 外置缓存的物理介质可以是内存或者硬盘 1 作用 加载hibernate cfg xml并完成系统的配置Configuration接口的作用是对Hibernate进行配置 并启动Hibernate和连接数据库系统 在Hibernate的启动过程中 Configuration类的实例首先定位缺省XML配置文件 hibernate cfg xml 并读取关的配置项目 然后创建出一个SessionFactory对象 根据Configuration对象创建一个SessionFactory对象 5 核心API介绍 Configuration接口 2 也可以采用自定义的XML配置文件可以指定开发者自己的 hbm xml文件的位置 而不是使用默认的classpath下面的hibernate cfg xml 但需要在代码中指示开发者自定义的XML配置文件 然后系统在启动时会自动地查找对应的自定义的XML配置文件 4 编程示例此时将需要通过代码添加对应的O RMapping映射文件 3 如果采用hibernate properties文件 1 Hibernate系统核心包 6 在Hibernate时所需要的各个JAR包文件 将hibernate3 jar文件拷贝到程序的上下文类路径下 classpath 和我们应用程序的其他库文件放一起 2 在应用Hibernate时还需要一些第三方的类库在运行时 Hibernate框架还需要一些第三方类库 它们在Hibernate发行包的optional和bytecode等
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河北石家庄市长安区招聘社区工作者168人备考题库及答案详解参考
- 2026年陕西省选调生招录备考题库(面向中央财经大学)及答案详解(全优)
- 2025天津渤海银行总行交易银行部国际业务中心招聘备考题库附答案详解(轻巧夺冠)
- 2025重庆涪陵区选拔社区工作者后备人选共300人备考题库及答案详解(全优)
- 2025云南丽江永胜县第二人民医院招聘药学专业编制备案制人员(编外人员)2人备考考点试题及答案解析
- 2025盐池县悯农供销集团有限公司招聘职业经理参考笔试试题及答案解析
- 2025浦发银行宁波分行社会招聘备考题库完整答案详解
- 2026福建省面向中国科学院大学选调生选拔工作备考题库附答案详解(突破训练)
- 2025浙江宁波甬开产城运营管理有限公司招聘3人参考笔试题库及答案解析
- 2025山西临汾隰县社区专职工作人员招聘6人备考题库含答案详解(培优b卷)
- 普外小儿常见病的微创治疗
- 公司解散清算的法律意见书、债权处理法律意见书
- 【课件】Unit+3+My+School学习课件2024-2025学年人教版英语七年级上册
- 泵车(汽车泵)租赁 投标文件(技术方案)
- 2020年山东专升本计算机全真试题及答案
- DL∕T 448-2016 电能计量装置技术管理规程
- 克林霉素磷酸酯专家讲座
- 一款问答APP的产品需求文档(PRD)
- MOOC 数字逻辑电路实验-东南大学 中国大学慕课答案
- (详尽多场合)大米代理销售协议word模板
- 产品量产问题总结汇报
评论
0/150
提交评论