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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java中strictfp关键字,java strictfp关键字用法大全详解

    java中strictfp关键字,java strictfp关键字用法大全详解一、strictfp关键字简介strictfp是Java中提供的一个保留关键字,该关键字是从这第javaJDK2版本儿开始出现的一直沿用到现在,只不过很多情况下都不怎么使用,所以容易被大家遗忘,因此今天我们来介绍一下这个关键字的用法和使用详解案例。strictfp实际上是对浮点类型做精确运算的一个关键字,实际意思是FP-strictfp,Java中的浮点类型有float和double两种,当这两…

    2025年7月24日
    4
  • iterator迭代器详解_c++迭代器iterator

    iterator迭代器详解_c++迭代器iterator迭代器 Iterator动机模式定义实例结构要点总结笔记动机在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象.我们希望在不暴露其内部结构地同时.可以让外部客户代码透明地访问其中包含地元素;同时这种”透明遍历”也为”同一种算法在多种集合对象上进行操作”提供了可能.使用面向对象技术将这种便利机制抽象为”迭代对象”为”应对变化中地集合对象”提供了一种优雅地方式模式定义提供了一种方法顺序访问一个聚合对象中地各个元素,而又不暴露(稳定)该对象地内部表示.实例结构要点总结迭代抽象

    2022年8月11日
    4
  • Ubuntu安装yum失败

    Ubuntu安装yum失败先看一下虚拟机可以上网;那么联网没有问题;yum-ylistjava*;查看jdk版本;提示yum没有安装;那么先要安装yum;输入rpm-qayum,查看yum的安装情况,rpm也没有安装;输入apt-getinstallyum安装yum,提示权限不足,areyouroot?当前是root用户;在命令前加sudo就对了;sudoapt-getinstallyum;然后提示不能定位yum包;需要先执行apt-getupdate;前面还

    2022年6月16日
    37
  • 古代文人一种无拘无束的自由心态

    古代文人一种无拘无束的自由心态

    2021年7月28日
    59
  • 反转每对括号间的子串java_栈和队列具有相同的逻辑结构

    反转每对括号间的子串java_栈和队列具有相同的逻辑结构给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。示例 1:输入:s = “(abcd)”输出:“dcba”示例 2:输入:s = “(u(love)i)”输出:“iloveu”示例 3:输入:s = “(ed(et(oc))el)”输出:“leetcode”示例 4:输入:s = “a(bcdefghijkl(mno)p)q”输出:“apmnolkjihgfedcb

    2022年8月11日
    4

发表回复

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

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