在开始学Hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装。一句不难,难道是真的不难还是眼高手低?

如果只是停留在使用的层面上,我相信什么技术都不难,看看别人怎么做的,你也可以很快上手。
这难道是学习的最终目的吗?
不是,绝对不是。我们需要了解这门技术的基本概念,它到底是什么,它是干什么的,它有什么优缺点。下面我就带领大家一起回顾一下Hibernate:
什么是Hibernate?
Hibernate,翻译过来是冬眠的意思,正好现在已经进入秋季,世间万物开始准备冬眠了。其实对于对象来说就是持久化。
持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。
持久化是将程序数据在持久状态和瞬时状态间转换的机制。
JDBC就是一种持久化机制。文件IO也是一种持久化机制。
日常持久化的方法:
1、将鲜肉冷藏,吃的时候再解冻的方法也是。
2、将水果做成罐头的方法也是。
我们从三个角度理解一下Hibernate:
一、Hibernate是对JDBC进一步封装
原来没有使用Hiberante做持久层开发时,存在很多冗余,如:各种JDBC语句,connection的管理,所以出现了Hibernate把JDBC封装了一下,我们不用操作数据,直接操作它就行了。
二、我们再从分层的角度来看
我们知道非常典型的三层架构:表示层,业务层,还有持久层。Hiberante也是持久层的框架,而且持久层的框架还有很多,比如:IBatis,Nhibernate,JDO,OJB,EJB等等。
三、Hibernate是开源的一个ORM(对象关系映射)框架。
ORM,即Object-Relational Mapping,它的作用就是在关系型数据库和对象之间做了一个映射。从对象(Object)映射到关系(Relation),再从关系映射到对象。这样,我们在操作数据库的时候,不需要再去和复杂SQL打交道,只要像操作对象一样操作它就可以了(把关系数据库的字段在内存中映射成对象的属性)。
Hibernate的核心:
从上图中,我们可以看出Hibernate六大核心接口,两个主要配置文件,以及他们直接的关系。Hibernate的所有内容都在这了。那我们从上到下简单的认识一下,每个接口进行一句话总结。
1、Configuration接口:负责配置并启动Hibernate
2、SessionFactory接口:负责初始化Hibernate
3、Session接口:负责持久化对象的CRUD操作
4、Transaction接口:负责事务
5、Query接口和Criteria接口:负责执行各种数据库查询
注意:Configuration实例是一个启动期间的对象,一旦SessionFactory创建完成它就被丢弃了。
Hibernate的优/缺点:
优点:
1、更加对象化
以对象化的思维操作数据库,我们只需要操作对象就可以了,开发更加对象化。
2、移植性
因为Hibernate做了持久层的封装,你就不知道数据库,你写的所有的代码都具有可复用性。
3、Hibernate是一个没有侵入性的框架,没有侵入性的框架我们称为轻量级框架。
对比Struts的Action和ActionForm,都需要继承,离不开Struts。Hibernate不需要继承任何类,不需要实现任何接口。这样的对象叫POJO对象。
4、Hibernate代码测试方便。
5、提高效率,提高生产力。
缺点:
1、使用数据库特性的语句,将很难调优
2、对大批量数据更新存在问题
3、系统中存在大量的攻击查询功能
总结:
Hibernate可以使我们采用对象化的思维操作关系型数据库。
总结
以上所述是小编给大家介绍的Java中Hibernate的基本原理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# hibernate基本原理
# 简介Java的Hibernate框架中的Session和持久化类
# 解析Java的Hibernate框架中的持久化类和映射文件
# Java Hibernate中一对多和多对多关系的映射方式
# Java Hibernate使用方法及整合查询
# Java hibernate延迟加载get和load的区别
# Java Hibernate使用SessionFactory创建Session案例详解
# Hibernate传入Java对象创建动态表并录入数据
# Java web Hibernate如何与数据库链接
# Java Hibernate中的持久化类和实体类关系
# 不需要
# 是一个
# 它就
# 小编
# 有什么
# 我就
# 都在
# 你就
# 一句
# 很难
# 就有
# 在此
# 眼高手低
# 它是
# 给大家
# 使我
# 人说
# 只需要
# 怎么做
# 可以看出
相关文章:
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
如何高效配置IIS服务器搭建网站?
如何选择可靠的免备案建站服务器?
如何通过云梦建站系统实现SEO快速优化?
如何通过FTP空间快速搭建安全高效网站?
如何使用Golang table-driven基准测试_多组数据测量函数效率
如何零成本快速生成个人自助网站?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何选择CMS系统实现快速建站与SEO优化?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
招贴海报怎么做,什么是海报招贴?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
大连 网站制作,大连天途有线官网?
IOS倒计时设置UIButton标题title的抖动问题
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
建站之星云端配置指南:模板选择与SEO优化一键生成
如何用PHP快速搭建CMS系统?
制作网站的基本流程,设计网站的软件是什么?
如何登录建站主机?访问步骤全解析
如何选择高效稳定的ISP建站解决方案?
小程序网站制作需要准备什么资料,如何制作小程序?
网站制作免费,什么网站能看正片电影?
北京企业网站设计制作公司,北京铁路集团官方网站?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
教学论文网站制作软件有哪些,写论文用什么软件
?
电商平台网站制作流程,电商网站如何制作?
建站之星如何保障用户数据免受黑客入侵?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
北京制作网站的公司,北京铁路集团官方网站?
SQL查询语句优化的实用方法总结
建站之星如何取消后台验证码生成?
家庭服务器如何搭建个人网站?
建站之星安装后界面空白如何解决?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
北京的网站制作公司有哪些,哪个视频网站最好?
音响网站制作视频教程,隆霸音响官方网站?
利用JavaScript实现拖拽改变元素大小
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
建站VPS能否同时实现高效与安全翻墙?
图册素材网站设计制作软件,图册的导出方式有几种?
微信小程序 五星评分(包括半颗星评分)实例代码
python的本地网站制作,如何创建本地站点?
如何高效完成独享虚拟主机建站?
在线制作视频网站免费,都有哪些好的动漫网站?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
山东云建站价格为何差异显著?
*请认真填写需求信息,我们会在24小时内与您取得联系。