搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
2023面试高手
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
fftw_plan_dft_1d 函数原型
2
EasyPusher:开源RTSP直播推流Android UVC外接摄像头推送源码_android uvc rtsp推流
3
一步步带你解锁Stable Diffusion:SD 图生图功能保姆级入门指南「上」_sd图生图怎么与原图相似
4
鸿蒙移动开发实战:UIAbility、页面及组件的生命周期
5
【转】微软Azure Functions使用入门_azure functions 有几种模式
6
宝塔面板mysql无法启动的问题_宝塔mysql启动不了
7
第一个solidity程序_spdx license
8
TCP网络编程最佳实践_net.ipv4.tcp_rto_min
9
主控板 & 基带板_bbu主控板和基带板作用
10
Unity关于Oculus Quest2开发环境配置_oculus quest2开发者版本
当前位置:
article
> 正文
[转]Hibernate优点
作者:2023面试高手 | 2024-03-02 07:52:21
赞
踩
hibernate优势
http://www.router.net.cn/Article/26501.html
本文主要介绍Hibernate优点,下面就四点加以说明,希望大家学习时能够加以借鉴。
一、Hibernate优点是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,Hibernate和EJB不是一个范畴的东西,也不存在非此即彼的关系。
二、Hibernate优点是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性问题。
三、Hibernate优点不能用来直接和Entity Bean做对比,只有放在整个J2EE项目的框架中才能比较。并且即使是放在软件整体框架中来看,Hibernate也是做为JDBC的替代者出现的,而不是Entity Bean的替代者出现的,让我再列一次我已经列n次的框架结构:
传统的架构:
1) Session Bean <-> Entity Bean <-> DB
为了解决性能障碍的替代架构:
2) Session Bean <-> DAO <-> JDBC <-> DB
使用Hibernate来提高上面架构的开发效率的架构:
3) Session Bean <-> DAO <-> Hibernate <-> DB
就上面3个架构来分析:
1、内存消耗:采用JDBC的架构2无疑是最省内存的,Hibernate的架构3次之,EB的架构1最差。
2、运行效率:如果JDBC的代码写的非常优化,那么JDBC架构运行效率最高,但是实际项目中,这一点几乎做不到,这需要程序员非常精通JDBC,运用Batch语句,调整PreapredStatement的Batch Size和Fetch Size等参数,以及在必要的情况下采用结果集cache等等。而一般情况下程序员是做不到这一点的。因此Hibernate架构表现出最快的运行效率。EB的架构效率会差的很远。
3、开发效率:在有JBuilder的支持下以及简单的项目,EB架构开发效率最高,JDBC次之,Hibernate最差。但是在大的项目,特别是持久层关系映射很复杂的情况下,Hibernate效率高的惊人,JDBC次之,而EB架构很可能会失败。
4、分布式,安全检查,集群,负载均衡的支持
由于有SB做为Facade,3个架构没有区别。
四、EJB和Hibernate学习难度在哪里?
EJB的难度在哪里?不在复杂的XML配置文件上,而在于EJB运用稍微不慎,就有严重的性能障碍。所以难在你需要学习很多EJB设计模式来避开性能问题,需要学习App Server和EJB的配置来优化EJB的运行效率。做EJB的开发工作,程序员的大部分精力都被放到了EJB的性能问题上了,反而没有更多的精力关注本身就主要投入精力去考虑的对象持久层的设计上来。
Hibernate难在哪里?不在Hibernate本身的复杂,实际上Hibernate非常的简单,难在Hibernate太灵活了。
当你用EJB来实现持久层的时候,你会发现EJB实在是太笨拙了,笨拙到你根本没有什么可以选择的余地,所以你根本就不用花费精力去设计方案,去平衡方案的好坏,去费脑筋考虑选择哪个方案,因为只有唯一的方案摆在你面前,你只能这么做,没得选择。
Hibernate相反,它太灵活了,相同的问题,你至少可以设计出十几种方案来解决,所以特别的犯难,究竟用这个,还是用那个呢?这些方案之间到底有什么区别呢?他们的运行原理有什么不同?运行效率哪个比较好?光是主键生成,就有七八种方案供你选择,你为难不为难?集合属性可以用Set,可以用List,还可以用Bag,到底哪个效率高,你为难不为难?查询可以用iterator,可以用list,哪个好,有什么区别?你为难不为难?复合主键你可以直接在hbm里面配置,也可以自定义CustomerType,哪种比较好些?你为难不为难?对于一个表,你可以选择单一映射一个对象,也可以映射成父子对象,还可以映射成两个1:1的对象,在什么情况下用哪种方案比较好,你为难不为难?
这个列表可以一直开列下去,直到你不想再看下去为止。当你面前摆着无数的眼花缭乱的方案的时候,你会觉得幸福呢?还是悲哀呢?如果你是一个负责的程序员,那么你一定会仔细研究每种方案的区别,每种方案的效率,每种方案的适用场合,你会觉得你已经陷入进去拔不出来了。如果是用EJB,你第一秒种就已经做出了决定,根本没得选择,比如说集合属性,你只能用Collection,如果是Hibernate,你会在Bag,List和Set之间来回犹豫不决,甚至搞不清楚的话,程序都没有办法写。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/2023面试高手/article/detail/179698
推荐阅读
article
Docker
容器
与虚拟化技术:
OpenEuler
部署
docker
容器
应用...
将httpd.conf里的下面三处注释去除(下面IP必须填写PHP
容器
真实的IP,fpm端口号默认9000,不用变化)进...
赞
踩
article
Docker
Compose
的认识和部署_1.掌握
doc
ker
compose
部署
;
2.熟悉
doc
...
Docker
Compose
的认识和部署一、简述
Compose
1、YAML简述2、YAML数据结构说明2、
doc
ker
-...
赞
踩
article
HDU
6602
Longest
Subarray
(线段树)...
原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=
6602
题意:给出一个序列...
赞
踩
article
Linux
引入
多个
jar
包
运行
Java
程序_
javac
-cp
多个
jar
包
...
Linux
引入
多个
jar
包
运行
Java
程序_
javac
-cp
多个
jar
包
javac
-cp
多个
jar
包
...
赞
踩
article
【
openstack
-
tempest
】
01
tempest
介绍
_
tempest
openstack
...
openstack
自动化测试框架-
tempest
_
tempest
openstack
tempest
openstack
...
赞
踩
article
mac
-
terminal
命令:使用指定软件
打开
指定目录(
文件夹
)_
mac
iterm
打开
文件夹
...
1.命令 open [路径] -a [软件名称]2.例子:使用 webStorm
打开
src_code
文件夹
open...
赞
踩
article
Python
中使用
turtle
库画与
女朋友
纪念日
_
python
展示和
女朋友
的
纪念日
倒计时
...
import
turtle
, timedef drawGap(): #绘制数码管间隔
turtle
.penup() tu...
赞
踩
article
Conda
环境
复制
的方法_
conda
复制
环境
...
做科学计算的同学可能有时候会用到Ana
conda
这个东西,尤其是在一台新的服务器上配置
环境
的时候非常快速有效。那么问题来...
赞
踩
article
高通
平台开发系列讲解(
USB
篇)
DWC3
控制
USB
速率_
高通
平台usb
物理地址
a600000
...
高通
平台usb
物理地址
a600000
文章目录 一、设备树...
赞
踩
article
离线
环境
升级
python
及
安装
模块...
之前介绍的的Zabbix脚本是用
python
3写的,但是centos7默认
安装
的是
python
2.7.5,所以我们需...
赞
踩
article
hibernate
和
mybatis
的
区别
优缺点
对比_比较
hibernate
和
mybatis
的
优缺点
...
对比:一、开发速度
的
对比就开发速度而言,
hibernate
的
真正掌握要比Mybaits来得难些。Mybatis框架相对简...
赞
踩
article
免流类
软件
无
ROOT
开
热点
教程
_
every
proxy
使用
教程
...
本
教程
适用于使用免流无root开
热点
,理论上云免类的VPN免流等均可使用开
热点
的手机操作1,安装免
ROOT
热点
软件
(点击...
赞
踩
article
06-
HTTP
-
Request
获取
请求
头数据方法_
request
.
getheader
...
在这个示例中,我们使用
request
.getHeaders("Accept-Language")语句
获取
HTTP
请求
头A...
赞
踩
article
线段
树
--
概念+模板+入门
题
_
线段
树
基础
题
luogu
...
引子子问
题
–1给出n个数,m次问询,每次问询给出一个范围l、r,求区间l–r的总和很容易想到用前缀和可以解决 O(n)子...
赞
踩
article
2021
-
09
-14_
usbdm
...
STM32F103/F405设计电路总结一. 电源电路1.供电电路(1)USBUSB数据端子:1.USBDM:USB D...
赞
踩
article
Java
【
抽象类
和
接口
】是
什么
?_
java
接口
和
抽象类
...
记录学习过程——
Java
【
抽象类
和
接口
】_
java
接口
和
抽象类
java
接口
和
抽象类
...
赞
踩
article
云
原生
团队
如何
实现
加量不加价...
在
云
原生
团队
承担更多责任和职能的情况下,如何保证工作效率和质量是一个目前亟待解决的问题。Kindling-OriginX...
赞
踩
article
文件
管理
大师
:深入解析
Linux
的
文件
与
目录
操控...
除了字符“/之外,所有
的
字符都可以使用,但是要注意,在
目录
名或
文件
名中,不建议使用某些特殊字符,例如,、?不小心你库跑路...
赞
踩
article
IEEE802.11g 标准的
OFDM
_
ofdm
帧
结构
...
首先IEEE802.11g 标准的
OFDM
的
帧
结构
如下所示:关于802.11g,其基本的
帧
结构
: 短训练序列分为10段,...
赞
踩
article
计算机
毕业设计
选题推荐 40
个
高质量
计算机
毕设
项目分享【源码+论文】(三)
_
想找一
个
好做
的
计算机
毕设
...
想找一
个
好做
的
计算机
毕设
文章目录 前言 题目1 : 基于S...
赞
踩
相关标签
docker
运维
linux
java
jar
python
云计算
测试工具
mac
terminal
指定软件
打开文件夹
anaconda
conda
环境
复制
克隆
高通
大数据
开发工具
p2p
网络
网络协议
http