前言:为什么还没有进入到mybatis的学习呢?因为mybatis框架的核心思想就是ORM模型,所以好好了解一下ORM模型是有必要哒。


ORM模型

 

ORM(Object Relational Mapping)是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。(选取自百度百科:https://baike.baidu.com/item/ORM/3583252?fr=aladdin  )

O(对象模型):实体对象,即我们在程序中根据数据库表结构建立的一个个Entity实体类。

R(关系型数据库的数据结构):即我们建立的数据库表。

M(映射):从R(数据库)到O(对象模型)的映射,可通过xml文件映射。

简单地说,ORM就是数据库表跟简单POJO的映射关系模型,它主要解决数据库数据和POJO对象的相互映射。

所有的ORM模型都是基于JDBC进行封装的,不同的ORM模型对JDBC封装的强度不一样。

ORM作为一种思想,帮助开发人员跟踪实体Entity的变化,并将实体的变化翻译成sql语句,执行到数据库中去,也就是将实体的变化映射到表的变化。

有了ORM模型,在大部分情况下,程序员只需要了解Java应用而无需对数据库相关知识深入了解,便可以写出通俗易懂的程序。此外,ORM模型提供了统一的规则使得数据库的数据通过配置便可轻易映射到POJO上。

但是,有得必有失,ORM模型带给开发人员的便利,会影响数据库性能,复杂的查询在ORM模型下会显得繁琐。

现在实现ORM模型的框架有很多,像是Hibernate和Mybatis。


参考文章:https://blog.csdn.net/u010028869/article/details/47094973 

https://baike.baidu.com/item/ORM/3583252?fr=aladdin

(二)mybaits之ORM模型的更多相关文章

  1. laravel框架总结(八) -- ORM模型

    ORM模型简介 1>什么是ORM? ORM,即 Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在操作具体的 ...

  2. ORM模型

    一.创建及映射(orm_intro_demo文件) 在项目新建App下的models.py文件下新建ORM模型: from django.db import models #如果要将一个普通的类变成一 ...

  3. django ORM模型表的一对多、多对多关系、万能双下划线查询

    一.外键使用 在 MySQL 中,如果使用InnoDB引擎,则支持外键约束.(另一种常用的MyIsam引擎不支持外键) 定义外键的语法为fieldname=models.ForeignKey(to_c ...

  4. django创建ORM模型、通过ORM模型操作单个表、ORM模型常用字段

    一.ORM简介 ORM ,全称Object Relational Mapping,中文叫做对象关系映射,通过ORM我们可以通过类的方式去操作数据库,而不用再写原生的SQL语句.通过把表映射成类,把行作 ...

  5. ORM模型简介

    ORM模型简介 1>什么是ORM? ORM,即 Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在操作具体的 ...

  6. laravel5.2总结--ORM模型

    ORM模型简介 1>什么是ORM? ORM,即 Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在操作具体的 ...

  7. Python的自定义属性访问跟描述器以及ORM模型的简单介绍

    一 . 自定义属性访问 1.__getattr__ 作用:当我们访问属性的时候,如果属性不存在(出现AttrError),该方法会被触发. 2.__getattribute__ 作用:访问属性的时候, ...

  8. Django (学习第二部 ORM 模型层)

    Django对数据库的操作 Django的 ORM 简介 ORM操作 (增删改查) ORM操作数据库的增删改查 ORM创建表关系 ORM中常用字段及参数 数据库的查询优化 ORM中如何开启事务 ORM ...

  9. Revit二次开发-BIM模型导出

    最近一个月一直在研究Revit二次开发-BIM模型的导出,在网上找了很多相关资料学习.下面简单介绍一下我最近做的这个BIM模型的导出功能. 开始尝试使用Revit2015的样例程序里提供的读取模型几何 ...

随机推荐

  1. Dreamweaver cs6 的安装与破解

    网上找的教程http://jingyan.baidu.com/article/9f7e7ec08383b26f281554f4.html,亲测无误 只需点击试用安装即可 破解只需替换amtlib.dl ...

  2. 【223】◀▶ IDL HDF 文件操作说明

    参考:I/O - HDF Routines —— HDF 操作函数 01   HDF_SD_START 打开一个 SDS 模式的 HDF 文件. 02   HDF_SD_END 关闭一个 SDS 模式 ...

  3. Alien Flowers

    题意: 求含有A个"RR",B个"RB",C个"BB",D个"BR"的字符串个数. 解法: 首先考虑"BR&q ...

  4. 【Data Structure & Algorithm】求子数组的最大和

    求子数组的最大和 题目:输入一个整型数组,数组里有正数和负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值,要求时间复杂度为O(n).例如输入数组为1, - ...

  5. C#基础之--线程、任务和同步:一、异步委托

    创建线程的一种简单方式是定义一个委托,并异步调用它.委托是方法的类型安全的引用. Delegate还支持异步地调用方法.在后台Delegate类会创建一个执行任务的线程. 为了说明委托的异步特性,从一 ...

  6. win10+PHP 安装redis

    1.给php环境安装redis扩展 2.给电脑安装redis环境 一.为php安装redis服务 使用 phpinfo() 函数查看php对应的版本 二.去下面的两个网站下载对应版本的压缩包并解压(注 ...

  7. C++构造函数和拷贝构造函数详解

    构造函数.析构函数与赋值函数是每个类最基本的函数.它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险. 每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含 ...

  8. 【书评】【不推荐】《TensorFlow:实战Google深度学习框架》(第2版)

    参考书 <TensorFlow:实战Google深度学习框架>(第2版) 这本书我老老实实从头到尾看了一遍(实际上是看到第9章,刚看完,后面的实在看不下去了,但还是会坚持看的),所有的代码 ...

  9. python如何永久添加模块搜索路径

    win10系统 依次点击:控制面板\系统和安全\系统\高级系统设置\环境变量   找不到的话,直接在设置中搜索  环境变量  也一样 此时上面是用户变量 下面是系统变量   在系统变量中找到PYTHO ...

  10. 用css固定textarea文本域大小尺寸

    textarea元素在chrome等浏览器下可以被拖拉从而改变大小,对于查看textarea里面的内容来说相当方便,但是有时候 我们为了保持网页的美观,不得不想要禁掉这个功能,禁止用户随意拉动text ...