ORM 和 Hibernate

华三R4900 G5服务器实战:用PMC P460-B4阵列卡配置RAID1+RAID6,并搞定CentOS 7.9安装(含热备盘设置) 本文详细解析了在华三R4900 G5服务器上使用PMC P460-B4阵列卡配置RAID1+RAID6混合阵列的全过程,包括热备盘设置和CentOS 7.9系统安装。通过实战步骤和性能优化建议,帮助企业IT人员高效部署高可用存储方案,特别适合需要数据冗余和系统稳定性的企业级应用场景。 阅读详情

 本文摘自 李刚 著《Java EE企业应用实战》

 

 

 一. Hibernate的简要介绍

         Hibernate是轻量级Java EE应用的持久层解决方案,Hibernate不仅管理者Java类到数据库表的映射(包括Java 数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度的缩短使用JDBC处理数据持久化的时间。

        目前的主流的数据库依然是关系型数据库,而Java语言是面向对象的编程语言,当把二者结合一起使用时相当的麻烦,而Hibernate则减少了这个问题的困扰,它完成了对象模型和基于SQL的关系模型的映射关系。

        Hibernate较之另一个持久层的框架iBATIS,Hibernate更具有面向对象的特征;较之传统的Entity EJB方案,Hibernate则采用低侵入式的设计,即采用普通的Java对象(POJO),而不必继承Hibernate 的某个超类或者实现Hibernate的某个接口。Hibernate是面向对象的程序设计语言和关系型数据库之间的桥梁,Hibernate允许开发者使用面向对象的方式来操作关系型数据库。

        因为有了Hibernate 的支持,使得JavaEE应用的OOA (面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)三个过程一脉相承,成为一个整体。

 

二. ORM

        目前流行的编程语言,如Java、C# 等,它们都是面向对象的编程语言,而目前主流的数据库产品例如Oracle、DB2等,依然是关系型数据库。编程语言和底层数据库发展的不协调,催生出了ORM框架。ORM框架可以作为面向对象语言和关系型数据库之间的桥梁。

 

1. 对象/关系数据库映射(ORM) 

        ORM的全称是Object/Relation Mapping,对象/关系数据库映射。ORM可以理解成一种规范,它概述了这类框架的基本特征:完成面向对象编程语言和关系型数据库的映射。当ORM框架完成映射后,它既可利用面向对象程序设计语言的简单易用性,又可以利用关系型数据库的技术优势。因此,我们可以把ORM框架当成是应用程序和数据库的桥梁。

        当我们使用一种面向对象程序设计语言来进行应用开发时,从项目开始起就采用的是面对对象分析、面向对象设计、面向对象编程,但到了持久层数据库访问时,又必须重返关系型数库的访问方式,这是一种糟糕的感觉。于是我们需要一种工具,它可以把关系型数据库包装成一个面向对象的模型,这个工具就是ORM框架。

        ORM是面向对象程序设计语言与关系型数据库发展不同步时的中间解决方案。随着面向对象数据库的发展 ,其理论逐步完善,最终会取代关系型数据库。只不过这个过程不会一蹴而就,ORM框架在此期间仍将蓬勃发展。但是随着面对对象数据库的出现,ORM工具会自动的消亡。

       对时下流行的编程语言而言,面向对象程序设计语言代表了目前程序设计语言的主流和趋势,具备了非常多的优势。比如:

     (1)面向对象的建模、操作

     (2)多态、继承

     (3)摒弃难以理解的过程

     (4)简单易用易理解

       但数据库的发展并未与程序设计语言同步,而且关系数据库的某些优势也是面向对象的语言无法比拟的。比如:

     (1)大量数据的查找和排序

     (2)集合数据连接操作、映射

     (3)数据库访问的并发、事务

     (4)数据库的约束和隔离

        当我们采用ORM框架之后,应用程序不再直接访问底层的数据库,而是以面向对象的方式来操作持久化对象(例如创建、修改、删除等),而ORM框架则将这些面向对象操作转换成底层的SQL操作。

        正如上图所示ORM工具的唯一作用就是把持久化对象的操作转换成对数据库的操作,从此程序员可以以面向对象的方式操作持久化对象,而ORM框架则负责转换成对应的SQL(结构化查询语言)操作。

 

2. 基本映射方式

        ORM工具提供了持久化类和数据表之间的映射关系 ,通过这种关系的映射过渡,我们可以很方便地通过持久化类对数据表进行操作。实际上,所有ORM工具大致上都遵循相同的映射思路。

        ORM基本映射有如下这几条映射关系:

       (1) 数据表映射类:

        持久化类被映射到一个数据表。当我们使用这个持久化类来创建实例、修改属性、删除实例时,系统自动会转换为对这个表进行CRUD操作,下图显示了这种映射关系。

        正如上图所示,受ORM管理的持久化类(就是一个普通的Java类)对应一个数据表,只要我们对这个持久化类进行操作,系统可以转换成对对应数据表的操作。

      (2) 数据表的行映射对象(即实例):

        持久化类会生成很多的实例,每个实例就对应数据表中的一行记录。当我们在应用中修改持久化类的某个实例时,ORM工具将会转换成对对应数据表中的特定行的操作。每个持久化对象对应数据表的一行记录。如下图所示:

      (3) 数据表的列(字段)映射对象的属性:

       当我们在应用中修改某个持久化对象的制定属性时(持久化数据映射到数据行),ORM将会转换成对对应表中指定数据行、指定列的操作。数据表列被映射到对象属性的示意图如下表示:

        基于这些基本的映射方式,ORM工具可完成对对象模型和关系模型之间的相互映射。由此可见,在ORM框架中,对象持久化是一种中间媒介,应用程序只需要操作持久化对象,ORM框架则负责将这种操作转换为底层数据库操作——这种转换对开发者来说透明,无需开发者关心,从而将开发者从关系模型中解放出来,使得开发者能够以面向对象的思维操作关系型数据库。

 

 

 

C语言 100道经典编程题适用于专升本,专接本【详细分析版】_c语言专升本题目 /法2//left指向起始 right指向数组末尾= 0){left++;//如果*left是奇数就循环接着向后指,直到指向偶数就退出//(left 阅读详情

相关推荐

基于微信小程序的扫码签到系统源码

大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具。代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。签到管理:新增签到,点击查看码展示二维码(有时效性)springboot mybatis 小程序。签到管理:查看用户创建的签到,可删除。用户管理:查看注册用户信息,及删除。签到记录:查看用户签到记录:可删除。个人信息:展示个人信息,可修改。统计分析:查看用户,签到数量。签到记录:查看用户签到记录。登录注册(含授权登录)我的签到:查看签到记录。

wfuhui的博客 5224

ORM框架Hibernate框架的使用以及搭建方式

持久层ORM框架Hibernate框架的使用以及搭建方式 前言 hibernate的概念: hibernate是一个ormapping框架(ORM框架,全自动ORM框架) hibernate是一个数据库的操作框架即持久层框架 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库(SQL语句由Hibernate根据对象自动生成)。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户

zhx__的博客 6084

在已有win10系统下安装Ubuntu,最后出现执行‘grub-install/dev/nvme0n1p5‘失败的致命错误的解决方案

本人电脑型号戴尔灵越,两个SSD512G固态硬盘,c盘为系统盘. Ubuntu版本为20.04LTS,在官网下载https://ubuntu.com/download/desktop/thank-you?version=20.04.3&architecture=amd64 系统盘制作工具为Rufus-3.15http://rufus.ie/zh/ 安装过程网上很多,在这里就不赘述了. 其他安装过程都很顺利,直至安装最后出现这个 本来安装了到最后还以为成了,结果又不行...... 后.

XiaoChen_gugugu的博客 1万+

Java必知必会系列:ORM框架与Hibernate

1.背景介绍 在现代软件开发中,数据库操作是非常重要的一部分。随着数据库技术的不断发展,各种数据库操作的框架也不断出现。这篇文章将介绍一种非常重要的数据库操作框架——ORM框架(Object-Relational Mapping,对象关系映射),以及其中的一种实现——Hibernate。 ORM框架是一种将对象与关系数据库进行映射的技术,

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 352

Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案

【代码】Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案。

2401_86789230的博客 2万+

LVGL 源码分析大全

LVGL 是一款流行的免费和开源嵌入式图形库,为纯C的轻量级GUI框架,支持framebuffer直接渲染图层,因此LVGL能更容易为 MCU、MPU等显示设备开发漂亮的UI。可视化的 UI 编辑器官方上有推荐使用工具。当然,也可以选择 NXP(恩智浦半导体) 提供的工具。........................

Bigan(安)的博客 1万+

ORM框架之Spring Data JPA(一)Hibernate实现JPA规范

一、ORM简述 ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射。简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的...

小蜜蜂1010的博客 2389

18. 从 SAP Fiori Elements List Report 中的图片显示,谈谈背后的 XML Template 设计机制

至此,Fiori Elements List Report 这个模版里,图片显示的原理,笔者已经从开发人员层面需要定义的注解,和 Fiori Elements 框架层面如何解析这些注解,这两方面做了深入介绍。从本文开始,我们从 Fiori Elements 预制的标准 XML Template 模版的设计,来介绍我们在最终 Fiori Elements 页面看到的产品图标,是如何渲染出来的。但是,List Report 里产品的图标显示,到底是上面这些 XML 文件里的哪一个里定义的呢?

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 606

什么是ORM?

持久化层封装了数据访问细节,为业务逻辑层提供了面向对象的API。完善的持久化层应该达到以下目标:  代码可重用性高,能够完成所有的数据库访问操作  如果需要的话,能够支持多种数据库平台  具有相对独立性,当持久化层的实现发生变化,不会影响上层的实现。 那么到底如何来实现化持久化层呢?对于复杂的数据模型,这接通过JDBC编程来实现健壮的持久化层需要有专业的知识,对于企业...

wanglihuhappy的专栏 311

21天教你学会PCIe专栏(17)--多功能设备

1.1 定义多功能PCIe设备:多功能PCIe设备是指在一个物理设备中集成了多种功能的设备。这些功能可以通过不同的PCIe功能(Function)来实现,每个功能可以独立配置和管理。1.2 优点资源利用率:通过集成多种功能,减少物理设备的数量,提高资源利用率。成本效益:减少硬件成本和功耗,提高系统的经济性。灵活性:用户可以根据需要启用或禁用不同的功能,提高系统的灵活性。可扩展性:通过增加新的功能,扩展设备的功能,提高系统的可扩展性。1.3 应用场景网络设备。

xiaoheshang_123的博客 531

损失函数大汇总(五十九)(TopoInteraction Loss附公式推导与代码)

本文介绍了TopoInteraction Loss,一种用于多类别分割任务的拓扑交互约束损失函数。不同于传统拓扑损失关注单类别的连通性和孔洞数量,该损失重点约束不同类别之间的空间关系,包括互斥(exclusion)和包含(containment)两种典型拓扑关系。通过将全局拓扑约束转化为局部邻接检测,该损失能准确定位破坏预设拓扑关系的像素,并针对性施加惩罚。关键创新点在于:1)将包含关系转化为互斥约束;2)使用卷积运算高效检测非法邻接;3)仅对违规像素施加损失。实验表明,该方法能有效纠正类别间的错误接触,特

悦学共鸣,温柔以待,汇聚光芒,共同成长 349

ORM、Hibernate 与 MyBatis 详解:选择合适的框架

在现代 Java 开发中,ORM(对象关系映射)技术已经成为了数据库操作的重要组成部分。ORM 使得开发者可以通过面向对象的方式处理数据,而无需手动编写繁琐的 SQL 语句。随着 ORM 技术的不断发展,越来越多的框架应运而生,最具代表性的便是 Hibernate 和 MyBatis。本文将从 ORM、Hibernate 和 MyBatis 三个角度出发,详细阐述它们各自的特点、优劣势,并分析它们之间的区别,帮助开发者选择最适合的框架。

cooldream2009的博客 1067

遗传算法(GA)全面解析:从生物基础到工程实践

本文全面解析了遗传算法(GA),从其生物基础到工程实践应用。遗传算法模拟自然进化过程,通过选择、交叉和变异等操作在解空间中高效搜索最优解。文章详细介绍了算法的生物学基础(达尔文进化论、孟德尔遗传定律)、基本概念(种群、个体、基因等)和核心思想。重点阐述了遗传算法的数学模型,包括编码机制、适应度函数设计、遗传算子(选择、交叉、变异)以及关键控制参数。最后提供了一个完整的Python实现示例,展示了遗传算法求解函数最大值问题的具体应用。该算法具有群体搜索、概率导向、无需梯度等特点,适用于各类复杂优化问题。

qq_42212808的博客 1175

hibernate进阶(一)—ORM、JPA、Hibernate

一、ORM  起源     如今面向对象编程已经称为企业级开发中主流开发方法,而关系型数据库也也成为企业应用环境中永久存数据的主流存储系统。面向对象是从软件工程基本原则(如耦合、聚合、封装)基础上发展而来,而关系型数据库是从数学理论发展而来。那怎样将编程中的对象存储在关系型数据库呢?

遇见更好的自己 1359

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

hibernate_和ORM的关系

Hibernate是轻量级的JavaEE应用的持久层框架,Hibernate不仅管理Java类到数据表的映射,还提供数据查询和获取数据的方法,可大幅度缩短处理数据持久化的时间。1. ORM和Hibernate的关系 ORM的全称是:Object/Relation Mapping,即对象/关系数据库映射。ORM可理解成一种规范,它概述了这类框架的基本特征,完成面向对象的变成语言到数据库的映射。ORM...

子龙修仙的博客 2602

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ORM框架——Hibernate

ORM(Object-Relationship Mapping):对象-关系映射 ORM框架技术:Hibernate、MyBatis 使用JBoss突出的Eclipse综合开发工具插件Hibernate Tools简化开发工作 ============================使用Hibernate创建一个工厂========================== 创建

Paige's Blog 383

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ORM 思想及Hibernate实现

ORM 思想目前,通过 Java 语言连接并操作数据库的技术或方式已经有很多了,例如:JDBC, Hibernate,MyBatis,TopLink 等等。其中 JDBC 是 Java 原生的 API,支持连接并操作各种关系 型数据库。相信每个程序员都是从 JDBC 开始学起的,然后才接触到各种持久层框架。 JDBC 作为...

qq_35485206的博客 961

结合Hibernate,理解ORM

1. 绪言 关系型数据库(RDB)通过实体之间的关系连接数据,而面向对象编程(OOP)把现实生活中的实体抽象成对象。 其实,RDB中的实体也可以使用对象进行表达,这样就能使用OOP来操作RDB。 比如,对象的save()方法,对应RDB的insert语句;对象的update()方法对应RDB的update语句。 以上思想或技术被叫做ORM(Object/Relational Mapping,对象/关系映射): 通过实例对象的语法,完成关系型数据库的操作的技术 在ORM中,对象与数据库的关系如下:

lucyLee的博客 471

初学Hibernate 写orm demo

一、Hibernate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servl...

Lemon__的博客 301

Hibernate之ORM

Hibernate之ORM简介: hibernate是一个采用ORM(Object/Relation Mapping对象关系映射)机制持久层的开源框架,其主要核心思想是面向对象,而非面向过程,而这个面向对象则主要通过ORM实现。 实现方式 注解和xml配置 常用注解 @Entity //第一步:变成实体 表示标识映射到数据库中的类 @Id //第二步:主键 @Gen

a3060858469的博客 545

ORM和hibernate 概述

面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> ...

guohao_Kwok的博客 160

Hibernate (ORM)

1 框架体系结构   2 hibernate入门 2.1 ORM框架     Hibernate是一个数据持久化层的ORM框架. Object:对象,java对象,此处特指JavaBean Relational:关系,二维表,数据库中的表。 映射|映射元数据:对象中属性,与表的字段,存在对应关系。       2.2 什么是hibernate     l Hibernate是轻量级JavaEE应用

BurningMyself 1万+

Hibernate ORM 概览

Hibernate ORM(对象关系映射)是一个用于 Java 应用程序的持久层框架。它提供了一种将 Java 对象映射到关系型数据库中的方式,从而简化了数据库访问和管理。

qq_33240556的博客 1064

ORM思想及Hibernate和Mybatis框架实现原理

1、ORM思想(Object Relational Mapping) 目前,通过Java语言连接并操作数据库的技术或方式已经有很多了,例如:JDBC,Hibernate,MyBatis,TopLink等等。其中JDBC是Java原生的API,支持连接并操作各种关系型数据库。相信每个程序员都是从JDBC开始学起的,然后才接触到各种持久层框架。 JDBC作为Java原生API,有优点,也有缺点,这...

zengdongwen的博客 2080

什么是ORM?Hibernate和MyBatis有什么区别?

ORM(Object-Relational Mapping,对象关系映射)是一种通过建立对象模型与关系型数据库表之间的映射,实现面向对象编程与数据库交互的技术。其核心目标是解决面向对象开发与关系型数据库之间的“阻抗不匹配”问题,使开发者能以操作对象的方式操作数据库,减少直接编写SQL的复杂度。开发效率 vs 控制力选择Hibernate若需快速实现业务逻辑,减少SQL编写。选择MyBatis若需直接优化SQL或处理复杂查询。项目规模与复杂度。

破损的天堂鸟博客 1127

MyBatis 与 Hibernate 等 ORM 框架的区别?

MyBatis 更像是一个“SQL Mapper”,它提供了对 SQL 的精细控制,适合复杂的、性能敏感的场景;Hibernate 更像是一个“全自动 ORM”,它强调对象与数据库的自动映射,适合简单的、快速开发的场景。选择哪种框架取决于项目的具体需求、团队的技术栈以及开发者的偏好。MyBatis 和 Hibernate 都是流行的 Java ORM(Object-Relational Mapping,对象关系映射)框架,但它们在设计理念、使用方式和适用场景上存在显著的区别。

专注于技术分享 1170
上一篇: 流行的ORM框架简介
下一篇: Hibernate的体系结构
IMFuckingHigh
博客等级 码龄18年 85粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值