orm 订阅
对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示着额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。 展开全文
对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示着额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。
信息
外文名
Object Relational Mapping
别    称
ORM
中文名
对象关系映射
适用领域范围
程序开发
对象关系映射定义
对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。
收起全文
精华内容
下载资源
问答
  • ORM

    千次阅读 多人点赞 2018-08-31 22:16:59
    ORM ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象...

    ORM

    ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

    总结:简单来说ORM就是封装数据库的操作。

    优点:

    1、只需要面向对象编程, 不需要面向数据库编写代码.:
    对数据库的操作都转化成对类属性和方法的操作,不用编写各种数据库的sql语句。

    2、实现了数据模型与数据库的解耦,屏蔽了不同数据库操作的差异:
    不在关注用的是mysql、oracle….等,通过简单的配置就可以轻松更换数据库,而不需要修改代码。

    缺点:

    1、相比较直接使用SQL语句操作数据库,有性能损失.
    2、根据对象的操作转换成SQL语句,根据查询的结果转化成对象, 在映射过程中有性能损失.。

    展开全文
  • public class ServiceDal : IServiceDal { public static readonly string Customers = ConfigurationManager.ConnectionStrings["Customers"].ToString()
  • ormORM-源码

    2021-02-24 11:53:06
    ormORM
  • orm-源码

    2021-03-10 10:06:07
    orm
  • ORM-源码

    2021-02-13 09:10:15
    ORM
  • orm:PHP ORM数据库-源码

    2021-04-13 18:43:56
    奥姆 PHP ORM数据库
  • ThinkORM 基于PHP7.1 +和PDO实现的ORM,支持多数据库,2.0版本主要特性包括: ...支持原生查询和查询构造器 自动参数绑定和预查询 简洁易用的查询功能 ...composer require topthink/think-orm 文件 详细参考
  • 循环ORM Cycle是PHP DataMapper,ORM和数据建模引擎,旨在安全地在经典的守护程序PHP应用程序(如 )中工作。 ORM提供了灵活的配置选项来建模数据集,强大的查询生成器并支持动态映射架构。 该引擎可以使用普通PHP...
  • 这里面包括了Hibernate和MyBatis的实现ORM思想的原理,以及讲解了什么是ORM思想。仿照Hibernate自定义了一个简单的增删改查的ORM框架,还有测试代码。
  • 什么是ORM?为什么要用ORM

    万次阅读 多人点赞 2019-05-29 13:40:14
    了解orm,先了解以下概念: 什么是“持久化”  持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也...

    了解orm,先了解以下概念:

    什么是“持久化” 
    持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。

    什么是 “持久层” 
    持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。

     

    什么是ORM

    即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 。

     

    为什么要做持久化和ORM设计(重要)

    在目前的企业应用系统设计中,MVC,即 Model(模型)- View(视图)- Control(控制)为主要的系统架构模式。MVC 中的 Model 包含了复杂的业务逻辑和数据逻辑,以及数据存取机制(如 JDBC的连接、SQL生成和Statement创建、还有ResultSet结果集的读取等)等。将这些复杂的业务逻辑和数据逻辑分离,以将系统的紧耦 合关系转化为松耦合关系(即解耦合),是降低系统耦合度迫切要做的,也是持久化要做的工作。MVC 模式实现了架构上将表现层(即View)和数据处理层(即Model)分离的解耦合,而持久化的设计则实现了数据处理层内部的业务逻辑和数据逻辑分离的解耦合。 而 ORM 作为持久化设计中的最重要也最复杂的技术,也是目前业界热点技术。

    简单来说,按通常的系统设计,使用 JDBC 操作数据库,业务处理逻辑和数据存取逻辑是混杂在一起的。
    一般基本都是如下几个步骤:
    1、建立数据库连接,获得 Connection 对象。
    2、根据用户的输入组装查询 SQL 语句。
    3、根据 SQL 语句建立 Statement 对象 或者 PreparedStatement 对象。
    4、用 Connection 对象执行 SQL语句,获得结果集 ResultSet 对象。
    5、然后一条一条读取结果集 ResultSet 对象中的数据。
    6、根据读取到的数据,按特定的业务逻辑进行计算。
    7、根据计算得到的结果再组装更新 SQL 语句。
    8、再使用 Connection 对象执行更新 SQL 语句,以更新数据库中的数据。
    7、最后依次关闭各个 Statement 对象和 Connection 对象。

    由上可看出代码逻辑非常复杂,这还不包括某条语句执行失败的处理逻辑。其中的业务处理逻辑和数据存取逻辑完全混杂在一块。而一个完整的系统要包含成 千上万个这样重复的而又混杂的处理过程,假如要对其中某些业务逻辑或者一些相关联的业务流程做修改,要改动的代码量将不可想象。另一方面,假如要换数据库 产品或者运行环境也可能是个不可能完成的任务。而用户的运行环境和要求却千差万别,我们不可能为每一个用户每一种运行环境设计一套一样的系统。
    所 以就要将一样的处理代码即业务逻辑和可能不一样的处理即数据存取逻辑分离开来,另一方面,关系型数据库中的数据基本都是以一行行的数据进行存取的,而程序 运行却是一个个对象进行处理,而目前大部分数据库驱动技术(如ADO.NET、JDBC、ODBC等等)均是以行集的结果集一条条进行处理的。所以为解决 这一困难,就出现 ORM 这一个对象和数据之间映射技术。

    举例来说,比如要完成一个购物打折促销的程序,用 ORM 思想将如下实现(引自《深入浅出Hibernate》):
    业务逻辑如下:
    public Double calcAmount(String customerid, double amount) 
    {
        // 根据客户ID获得客户记录
        Customer customer = CustomerManager.getCustomer(custmerid); 
        // 根据客户等级获得打折规则
        Promotion promotion = PromotionManager.getPromotion(customer.getLevel()); 
        // 累积客户总消费额,并保存累计结果
        customer.setSumAmount(customer.getSumAmount().add(amount); 
        CustomerManager.save(customer); 
        // 返回打折后的金额
        return amount.multiply(protomtion.getRatio()); 
    }
    这 样代码就非常清晰了,而且与数据存取逻辑完全分离。设计业务逻辑代码的时候完全不需要考虑数据库JDBC的那些千篇一律的操作,而将它交给 CustomerManager 和 PromotionManager 两个类去完成。这就是一个简单的 ORM 设计,实际的 ORM 实现框架比这个要复杂的多。

    展开全文
  • .NET ORM框架

    2018-01-21 23:32:16
    ORM框架 C#.NET ORM框架ORM框架 C#.NET ORM框架ORM框架 C#.NET ORM框架ORM框架 C#.NET ORM框架
  • 基于Knex.js封装orm,可以快速的开发大部分的数据库接口,并支持Knex的链式调用
  • websql-orm框架,支撑typescript angular cordova chrome SQLite数据库。 用法 websql-orm使用TypeScript语言,需要在使用tsconfig.json之前添加装饰器配置项以启用装饰器功能。 { " compilerOptions " : { " ...
  • couchdb-orm:一个简单的CouchDB ORM
  • 网页 ORM ORM (对象关系映射) - 是访问数据库(DB)的工具集。 这个 ORM 可以独立使用,但最初设计为与一起使用。 消息 2014年12 月, 带来了 JSON 字段类型支持。 我们喜欢这个并将在我们的 ORM 中使用这个特性...
  • 放松ORM 精简的ORM旨在减轻您在使用OracleDB时遇到的压力。 受和启发,请参阅更改日志以签出新功能。 | 入门 在OracleDB Instant Client上放松ORM依赖。 请按照说明进行操作。 安装OracleDB客户端后,在终端上...
  • ORM 包装器 ORM 多连接包装器。 Javascript 接口,允许您管理 node-orm2 模块的多个数据库连接。 入门 使用以下命令安装模块: npm install orm-wrapper 模型目录结构 . //Project root +-- models | +-- db1 | +-...
  • godot-orm:用于godot的orm
  • 煤油 煤油ORM:一种动态的,无配置的,自适应的ORM,用于POCO对象,具有来自C#的类似SQL的语法。 请参考以下站点的教程和说明: :
  • 快速orm 基于sqlx-core的orm,目标是类似django的orm关系。
  • 优化ORM性能

    2021-03-04 06:28:49
    有些开发者因为曾有性能上的不快经验而拒绝采用对象关系映射(ORM)技术。和任何形式的抽象一样,使用ORM框架要以一些额外开销作为代价,但事实上,使用经过恰当调优的ORM和手写原生的数据访问代码在性能上还是有...
  • orm-pack:适用于主义ORM的Symfony软件包
  • 什么是ORM?为啥要是用ORM

    万次阅读 多人点赞 2018-08-01 15:22:06
    了解orm,先了解以下概念: 什么是“持久化” 持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储...

    了解orm,先了解以下概念:

    什么是“持久化” 
    持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。

    什么是 “持久层” 
    持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。

     

    什么是ORM

    即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 。

     

    为什么要做持久化和ORM设计(重要)

    在目前的企业应用系统设计中,MVC,即 Model(模型)- View(视图)- Control(控制)为主要的系统架构模式。MVC 中的 Model 包含了复杂的业务逻辑和数据逻辑,以及数据存取机制(如 JDBC的连接、SQL生成和Statement创建、还有ResultSet结果集的读取等)等。将这些复杂的业务逻辑和数据逻辑分离,以将系统的紧耦 合关系转化为松耦合关系(即解耦合),是降低系统耦合度迫切要做的,也是持久化要做的工作。MVC 模式实现了架构上将表现层(即View)和数据处理层(即Model)分离的解耦合,而持久化的设计则实现了数据处理层内部的业务逻辑和数据逻辑分离的解耦合。 而 ORM 作为持久化设计中的最重要也最复杂的技术,也是目前业界热点技术。

    简单来说,按通常的系统设计,使用 JDBC 操作数据库,业务处理逻辑和数据存取逻辑是混杂在一起的。
    一般基本都是如下几个步骤:
    1、建立数据库连接,获得 Connection 对象。
    2、根据用户的输入组装查询 SQL 语句。
    3、根据 SQL 语句建立 Statement 对象 或者 PreparedStatement 对象。
    4、用 Connection 对象执行 SQL语句,获得结果集 ResultSet 对象。
    5、然后一条一条读取结果集 ResultSet 对象中的数据。
    6、根据读取到的数据,按特定的业务逻辑进行计算。
    7、根据计算得到的结果再组装更新 SQL 语句。
    8、再使用 Connection 对象执行更新 SQL 语句,以更新数据库中的数据。
    7、最后依次关闭各个 Statement 对象和 Connection 对象。

    由上可看出代码逻辑非常复杂,这还不包括某条语句执行失败的处理逻辑。其中的业务处理逻辑和数据存取逻辑完全混杂在一块。而一个完整的系统要包含成 千上万个这样重复的而又混杂的处理过程,假如要对其中某些业务逻辑或者一些相关联的业务流程做修改,要改动的代码量将不可想象。另一方面,假如要换数据库 产品或者运行环境也可能是个不可能完成的任务。而用户的运行环境和要求却千差万别,我们不可能为每一个用户每一种运行环境设计一套一样的系统。
    所 以就要将一样的处理代码即业务逻辑和可能不一样的处理即数据存取逻辑分离开来,另一方面,关系型数据库中的数据基本都是以一行行的数据进行存取的,而程序 运行却是一个个对象进行处理,而目前大部分数据库驱动技术(如ADO.NET、JDBC、ODBC等等)均是以行集的结果集一条条进行处理的。所以为解决 这一困难,就出现 ORM 这一个对象和数据之间映射技术。

    举例来说,比如要完成一个购物打折促销的程序,用 ORM 思想将如下实现(引自《深入浅出Hibernate》):
    业务逻辑如下:
    public Double calcAmount(String customerid, double amount) 
    {
        // 根据客户ID获得客户记录
        Customer customer = CustomerManager.getCustomer(custmerid); 
        // 根据客户等级获得打折规则
        Promotion promotion = PromotionManager.getPromotion(customer.getLevel()); 
        // 累积客户总消费额,并保存累计结果
        customer.setSumAmount(customer.getSumAmount().add(amount); 
        CustomerManager.save(customer); 
        // 返回打折后的金额
        return amount.multiply(protomtion.getRatio()); 
    }
    这 样代码就非常清晰了,而且与数据存取逻辑完全分离。设计业务逻辑代码的时候完全不需要考虑数据库JDBC的那些千篇一律的操作,而将它交给 CustomerManager 和 PromotionManager 两个类去完成。这就是一个简单的 ORM 设计,实际的 ORM 实现框架比这个要复杂的多。

    展开全文
  • ORM简介

    千次阅读 多人点赞 2021-03-25 10:32:23
    ORM简介ORM概念什么是“持久化”什么是持久层什么是ORMORM作用ORM的优劣处优点提高开发效率解耦合缺点减低程序性能 ORM概念 什么是“持久化” 即把数据(如内存中的对象)保存的磁盘的某一文件中。 什么是持久层 ...

    ORM概念

    什么是“持久化”

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

    什么是持久层

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

    什么是ORM

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

    ORM作用

    ORM解决的主要问题是对象关系的映射,一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录,类的每个属性对应表的每个字段。 ## ORM技术特点:
    1.提高了开发效率。由于ORM可以自动对Entity对象与数据库中的Table进行字段与属性的映射,所以我们实际可能已经不需要一个专用的、庞大的数据访问层。
    2.ORM提供了对数据库的映射,不用sql直接编码,能够像操作对象一样从数据库获取数据。

    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一般会持久化所有的属性,有时,这是不希望的。  
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 272,043
精华内容 108,817
关键字:

orm