全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解Java中Hibernate的基本原理

在开始学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小时内与您取得联系。