导航首页
排行榜单
申请收录
关于本站
搜索
本站
百度
搜狗
360
必应
头条
百度搜索
微客导航
»
文章资讯
»
Hibernate核心思想与接口简介
Hibernate核心思想与接口简介
2023-09-24 11:06:05
198
hibernate是一个采用ORM机制持久层的开源框架,接下来我们聊聊它的核心思想和接口。
核心思想
:ORM是将表与表之间的操作,映射成对象和对象之间的操作,这样简化了持久层的代码,减轻了程序员的负担
ORM是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。
所有的Hibernate应用中都会访问Hibernate的5个
核心接口
。
Configuration接口:配置Hibernate,根启动Hibernate,创建SessionFactory对象。
SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建Session对象。
Session接口:负责保存、更新、删除、加载和查询对象。
Transaction接口:管理事务。
Query和Criteria接口:执行数据库查询。
1.Configuration接口
Configuration对象用于配置并且启动Hibernate。Hibernate应用通过Configuration实例来指定对象-关系映射文件的位置或者动态配置Hibernate的属性,然后创建SessionFactory实例。
2.SessionFactory接口
一个SessionFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。SessionFactory有以下特点:
它是线程安全的,这意味着它的同一个实例可以被应用的多个线程共享。
它是重量级的,这意味着不能随意创建或销毁它的实例。如果应用只访问一个数据库,只需要创建一个SessionFactory实例,在应用初始化的时候创建该实例。如果应用同时访问多个数据库,则需要为每个数据库创建一个单独的SessionFactory实例。
之所以称SessionFactory是重量级的,是因为它需要一个很大的缓存,用来存放预定义的SQL语句以能映射元数据等。用户还可以为SesionFactory配置一个缓存插件,这个缓存插件被称为Hibernate的第二级缓存。,该缓存用来存放被工作单元读过的数据,将来其他工作单元可能会重用这些数据,因此这个缓存中的数据能够被所有工作单元共享。一个工作单元通常对应一个数据库事务。
3.Session接口
Session接口是Hibernate应用使用最广泛的接口。Session也被称为持久化管理器,它提供了和持久化相关的操作,如添加、更新、删除、加载和查询对象。
Session有以下特点:
不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session实例。
Session实例是轻量级的,所谓轻量级,是指它的创建和销毁不需要消耗太多的资源。这意味着在程序中可以经常创建和销毁Session对象,例如为每个客户请示分配单独的Session实例,或者为每个工作单元分配单独的Session实例。
Session有一个缓存,被称为Hibernate的第一级缓存,它存放被当前工作单元加载的对象。每个Session实例都有自己的缓存,这个Sesion实例的缓存只能被当前工作单元访问。
4.Transaction接口
Transaction接口是Hibernate的数据库事务接口,它对底层的事务接口做了封装,底层事务接口包括:
JDBCAPI、JTA(JavaTransactionAPI)、CORBA(CommonObjectRequetBrokerArchitecture)API
Hibernate应用可通过一致的Transaction接口来声明事务边界,这有助于应用在不同的环境容器中移植。尽管应用也可以绕过Transaction接口,直接访问底层的事务接口,这种方法不值得推荐,因为它不利于应用在不同的环境移植。
5.Query和Criteria接口
Query和Criteria接口是Hibernate的查询接口,用于向数据库查询对象,以及控制执行查询的过程。Query实例包装了一个HQL查询语句,HQL查询语句和SQL查询语句有些相似,但HQL查询语句是面向对象的,它引用类句及类的属性句,而不是表句及表的字段句。Criteria接口完全封装了基于字符串的查询语句,比Query接口更加面向对象,Criteria接口擅长执行动态查询。
Session接口的find()方法也具有数据查询功能,但它只是执行一些简单的HQL查询语句的快捷方法,它的功能远没有Query接口强大。
本文关于Hibernate核心思想与接口的介绍就到这里,希望对大家有所帮助。感谢大家对本站的支持!
上一篇
Notification消息通知 自定义消息通知内容布局
下一篇
java 多线程的同步几种方法
热门推荐
1
毛坯房验收经验和常识 看了之后再验房心里有底
2
二手房收房如何交接 二手房收房注意问题
3
专业验收毛坯房的价格 商品房验收合格的标准
4
精装房怎么验收 精装房请验房师有用吗
5
一般要到哪里找验房师 验房师有哪些作用呢
6
请人验房一般是多少钱 验房师费用是多少
7
怎样测量房子面积 建筑面积和使用面积怎么算
8
收房需要注意什么 仔细检查不松懈
9
收房时三书一证一表是什么 主要作用介绍
10
交房时交房税费有哪些 本文为你一一讲解
11
验房都需要验什么 要做哪些准备呢
12
毛坯房验房师有必要请吗 毛坯房装修完如何验收
13
地下室防水工程质量验收规范详解
14
水性涂料、油性涂料区别介绍
15
零基础布艺DIY工坊 教你做超萌猫头鹰钥匙包
16
三棵树漆怎么样?三棵树漆官方网站
17
家庭“装修套餐”中猫腻你知道吗?
18
小空间大浴望 卫浴间装修巧支招
随机推荐
和导师的祝福语简短
告别祝福语朋友简短句
甜蜜的祝福语高级简短
出门赚钱祝福语简短语
升职祝福语霸气文案简短
结尾文案祖国祝福语简短
公司回归文案祝福语简短
迎虎年押韵祝福语简短
公司恭喜晋升祝福语简短
同学爸爸大寿祝福语简短
未来中秋祝福语大全简短
美女买车祝福语简短句
流浪兄弟祝福语简短句
生日示爱鲜花祝福语简短
新坟搬迁祝福语大全简短
川影毕业祝福语简短
返回顶部
3162201930
czq8825@qq.com