ORM的全称是:Object Relational Mapping,即对象/关系数据库映射.

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

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

面向对象程序设计语言仍然是现在的主流和趋势,其具备非常多的优势,如:

面向对象的建模,操作.

多态,继承

摒弃难以理解的过程.

简单易用,易理解

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

大量数据查找,排序

集合数据连接操作,映射

数据库访问的并发,事务

数据库的约束,隔离

面对这种面向对象语言与关系数据库系统并存的局面,采用ORM就变成了一种必然.只要依然采用面向对象程序设计语言,底层依然采用关系型数据库,中间就少不了ORM工具.

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

ORM工具的唯一作用就是:把对持久化对象的保存,修改,删除等操作,转换成数据库的操作.

程序员可以以面向对象的方式操作持久化对象,而ORM框架则负责将相关操作转换成对应的SQL(结构化查询语言)操作

ORM基本映射关系

数据表映射表.

持久化类被映射到一个数据表.程序使用这个持久化来创建实例,修改属性,删除实例时,系统自动会转换成为对这个表进行CRUD操作

受ORM管理的持久化类(就是一个普通的Java类)对应一个数据库,只要程序对这个持久化类进行操作,系统就会可以将其转换成对应数据库表的操作

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

持久化类会生成很多的实例,每个实例就对应数据表中的一行记录.当程序在应用中修改持久化类的某个实例时,ORM工具将会将其转换成对应数据表中特定行的操作,每个持久化对象对应数据表的一行记录

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

当程序修改某个持久化对象的指定属性时(持久化实例映射到数据行),ORM将会将其转换成对应数据表中指定数据行,指定列的操作

可见,在ORM框架中,持久化对象就是一种媒介,应用程序只需操作持久化对象,ORM框架则负责将这种操作转换为底层数据库操作

流行的ORM框架:

JPA

Hibernate

Mybatis

对象/关系数据库映射(ORM)相关推荐

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

    ORM的全称是:Object Relational Mapping,即对象/关系数据库映射. 当使用一种面向对象的编程语言来进行应用开发时,从项目一开始就采用的是面向对象分析,面向对象设计,面向对象编 ...

  2. 学习笔记之什么是持久化和对象关系映射ORM技术

    ----------------本文转自:http://www.cppblog.com/javenstudio/articles/541.html--------------------- 何谓&qu ...

  3. 对象关系映射(ORM)及代码生成器和插件C#源码(DBFrameworkV4.5.3)

    1. ORM及代码生成器和插件C#源码(DBFrameworkV4.5.3) 一.使用对象关系映射组件Kenly.DBFramework.dll不用编写任何SQL或者存储过程即可实现下列功能: 1.数 ...

  4. 对象-关系映射ORM(Object Relational Mapping)(转)

    ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java).映射文件(*.hbm.xml)和数据库配置文件 ...

  5. python中通过元类(TYPE)简单实现对象关系映射(ORM)

    ORM是创建一个实例对象,用创建他的类名当做数据表名,用创建他的类属性对应数据表的字段,不需要在自己写复杂的sql语句,而是通过对实例对象的操作时,能让代码自动帮我们整理为对应的sql语句. clas ...

  6. 通过java反射实现简单的关于MongoDB的对象关系映射(ORM).

    通过阅读MongoDB  3.2.1的官方文档中关于java 编程发现最新的文档并没有实现对对象到Document的映射,所以自己有了利用反射实现简单的关系映射. 1.定义抽象类:AbstractMo ...

  7. orm 对象关系映射

    引用:http://baike.baidu.com/view/197951.htm 对象关系映射(ORM)提供了概念性的.易于理解的模型化数据的方法.ORM方法论基于三个核心原则: 简单:以最基本的形 ...

  8. java对象关系映射ROM

    一.对象关系映射ORM概述 对象关系映射(Object-Relational Mapping,简称ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术:简单的说,ORM是通过使 ...

  9. Object/Relation Mapping 对象关系映射

    对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的.面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应 ...

最新文章

  1. Android O 8.0 以上 bitmap内存分配
  2. java基础系列:集合入门
  3. php oracle 锁表,频繁使用的一张表经常好被锁死?怎样处理!
  4. python算法题排序_python-数据结构与算法- 面试常考排序算法题-快排-冒泡-堆排-二分-选择等...
  5. centos7源码安装mysql报错_CentOS7 下源码安装MySQL数据库 8.0.11
  6. C语言:强大的函数指针
  7. JavaScript 数组 array.at() 获取数组中最后一个元素
  8. 怎么烧录c语言_单的入门1 -- C语言 : 一门和芯片对话的外语
  9. validate验证
  10. 如何在 Flink 1.9 中使用 Hive?
  11. Shadow SSDT
  12. 怀仁一中2021高考成绩查询,2019怀仁一中录取分数线(附2019高考成绩喜报)
  13. 惠普打印机介质不匹配_打印机提示纸张不匹配该怎么解决?
  14. webp文件怎么打开?webp压缩工具推荐
  15. 洛谷P5594-【XR-4】模拟赛(模拟)
  16. 基于python的简单名片系统
  17. 【无人机】【2013.10】无人机在道路网中的搜索与追踪
  18. 方太和老板站上角斗场,谁能成为“厨房战争”最终赢家?
  19. Android客户端与本地服务器Socket通信
  20. php 获取当天是星期几,php 获取当天或某个日期是星期几

热门文章

  1. 查找作者发行的图书总数,按图书总数进行前十名的排名
  2. 三分钟带你了解并使用金万维云备份
  3. 移动互联技术与实践-实验一
  4. 使用Docker安装Guacamole远程网关并配置录像回放
  5. java sax 教程_SAX使用示例
  6. npm,ncu 一键升级 package.json 中依赖的版本
  7. 4月7号软件资讯更新合集....
  8. 点光源对焦模糊,将图片导入DP工具,观察PL_STATE
  9. 数据库隔离离别及加锁原理
  10. 笔记本电脑安装Ubuntu20.04及优化使用