ORM简介

ORM简介ORM 简介 ORM 概念什么是 持久化 什么是持久层什么是 ORMORM 作用 ORM 的优劣处优点提高开发效率解耦合缺点减低程序性能 ORM 概念什么是 持久化 即把数据 如内存中的对象 保存的磁盘的某一文件中 什么是持久层持久层 PersistenceL 即实现数据持久化应用领域的一个逻辑层面 将数据使用者和数据实体相关联 什么是 ORMORM 即 ObjectRelati 它是对象关系模型的简称 它的作用是在关系型数据库和对象之间作一个映射 使程序能够通过操纵描述对象方

ORM概念

什么是“持久化”

即把数据(如内存中的对象)保存的磁盘的某一文件中。

什么是持久层

持久层(Persistence Layer),即实现数据持久化应用领域的一个逻辑层面,将数据使用者和数据实体相关联。

什么是ORM

ORM,即Object Relational Mapping,它是对象关系模型的简称。它的作用是在关系型数据库和对象之间作一个映射。使程序能够通过操纵描述对象方式来操纵数据库。

ORM作用

ORM的优劣处

优点

提高开发效率

通常的系统设计中,使用 JDBC 操作数据库,业务处理逻辑和数据存取逻辑是混杂在一起的。 一般基本上都有如下步骤: 1、注册驱动,获取链接,即Connection对象。 2、根据输入组装sql语句 3、创建执行sql语句对象(静态SQL语句statement、动态SQL语句PrepareStatement、存储过程CallableStatement) 4、执行SLQ语句(查询用executeQuery、修改用executeUpdate、判断返回值是否为结果集用execute),获取结果集。 5、按特定的业务逻辑处理结果集,组装更新SQL语句。 6、执行更新SQL语句,以更新数据库中的数据 6、关闭链接。 其中的业务处理逻辑和数据存取逻辑完全混杂在一块,还不包括执行失败的处理逻辑。而一个完整的系统包含成千上万个这样重复的而又混杂的处理过程。假如对其中某条业务逻辑进行修改,要改动的代码量不可想象。其次,用户的运行环境和要求千差万别,公司不可能为每一个用户设计一套一样的系统。 所以就要将业务逻辑和数据存逻辑分开。另一方面,关系型数据库基本以行为单位进行存取,而程序运行却是以对象方式进行处理。为解决这一困难,就出现 ORM 这一个对象和数据之间映射技术 

解耦合

客户的需求可能随时变更,有些时候,我们不得不通过增删字段的方式来满足客户的需求。由于ORM可以自动对Entity对象与数据库中的Table进行字段与属性的映射,不用sql直接编码,能够像操作对象一样从数据库获取数据。 

缺点

减低程序性能

1、从系统结构上来看,采用ORM的系统一般都是多层系统,系统的层次多了,效率就会降低。ORM是一种完全的面向对象的做法,而面向对象的做法也会对性能产生一定的影响。 2、ORM所生成的代码一般不太可能写出很高效的算法。主要体现在对持久对象的提取和和数据的加工处理上。如果用上了ORM,很可能将全部的数据提取到内存对象中,然后再进行过滤和加工处理,这样就容易产生性能问题。 3、在对对象做持久化时,ORM一般会持久化所有的属性,有时,这是不希望的。 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233164.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月10日 下午5:01
下一篇 2025年8月10日 下午5:22


相关推荐

  • 基于matlab的傅里叶变换「建议收藏」

    基于matlab的傅里叶变换「建议收藏」原文出处例子1作用:使用傅里叶变换找出隐藏在噪声中的信号的频率成分。(指定信号的参数,采样频率为1kHz,信号持续时间为1秒。)由上图可知:从时域中我们很难观察到信号的频率成分。怎么办呢?当然

    2022年7月1日
    30
  • Ubuntu系统设置开机自动运行程序

    Ubuntu系统设置开机自动运行程序

    2020年11月8日
    260
  • 临界区和锁

    临界区和锁临界区临界资源 只允许一个进程独占访问的资源 变量 内存 临界区 进程访问临界资源的程序段特点排他性 并发进程不能同时进入临界区设计临界区访问机制的四个原则 忙则等待 临界区忙时 其他进程必须在临界区外等待空闲让进 无进程访问时 任何有权进程都可进入临界区有限等待 进程进入临界区的请求应在有限时间内满足让权等待 等待临界区访问的进程放弃 CPU 让给其他进程锁

    2025年11月20日
    5
  • cmd查看maven版本_maven获取最新版本

    cmd查看maven版本_maven获取最新版本cmd查看maven版本小技巧①键盘按下windows+Q②输入cmd③右击cmd以管理员身份运行④输入mvn-v或者mvn-version

    2022年8月22日
    37
  • eagleEye_分析特性

    eagleEye_分析特性EagleEye是一个利用移动设备进行人脸识别的系统,在多人环境下,低像素的输入仍能够保持正确性这里关注的点分为两个部分: ContentAdaptivepipelineselection SpatialIndependenceandParallelism 内容自适应的流程选择(ContentAdaptivepipelineselection)这项技巧用于优化复杂的多DNN人脸识别pipeline的执行,并且还能保持高的正确率…

    2022年8月16日
    8
  • ADRC学习笔记(二)

    ADRC学习笔记(二)1.最速跟踪微分器TD它的离散表达式为:参数中:V(t)是目标值h、h0为积分步长,一般来说h可以等于h0,但是为了减少超调和减少震荡,才把他们分开,一般h0比h大,比如大20倍。当h0较大时,能够明显减少震荡,所以也叫滤波因子。减小h可以抑制噪声放大作用。r为速度因子,值越大,逼近速度越快,但是最好根据实际被控对象的可承受能力而定。表达式中:其中fhan函数第一种表达式为:fhan函…

    2022年5月12日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号