ORM和Mybatis
ORM框架
概述
在学习MyBatis之前,先来看看什么是ORM框架。
ORM全称Object/Relation Mapping,对象/关系数据库映射,功能为完成对象的编程语言到关系数据库的映射,可以将其当成应用程序和关系型数据库的桥梁。
当使用面向对象的编程语言来进行应用开发时,从项目一开始就采用的是面向对象的思想(分析、设计、编程等),但到了持久层数据库访问时,又必须重返关系数据库的访问方式,所以就产生了ORM框架,可以把关系数据库包装成面向对象的模型。
ORM是面向对象程序设计语言和关系数据库发展不同步时的中间解决方案。采用ORM框架后,应用程序不再直接访问底层数据库,而是以面向对象的方式来操作持久化对象(创建、修改、删除等),而ORM框架则将这些面向对象的操作转换成底层的SQL操作。

ORM框架的唯一作用就是:把对持久化对象的保存、修改、删除等操作,装换成对数据库的操作,编程人员可以以面向对象的方式操作持久化对象,而ORM框架则负责将相关操作转换成对应的SQL(结构化查询语言)操作。
ORM框架的映射方式
ORM框架提供了持久化类和数据表之间的映射关系,所有的ORM框架基本都遵循相同的映射思路:
1、数据表映射类:持久化类被映射到一个数据表。编程人员使用这个持久化类来创建实例、修改属性或删除实例时,系统自动会转换为对这个表进行CRUD操作。
2、数据表的行映射对象:持久化类会生成很多实例,每个实例对应数据表中的一行记录。当程序在应用中修改持久化类的某个实例时,ORM工具将会将其转换为对于对应数据表中特定的行的操作。

3、数据表的列映射对象的属性:当程序修改某个持久化对象的指定属性时,ORM会将其转换成对于对应数据表中指定数据行、指定列的操作。

基于这种基本的映射方式,ORM框架可以完成对象模型和关系模型之间的相互映射。
因此在ORM框架中,持久化对象是一种媒介,应用程序只需操作持久化对象,ORM框架则负责将这种操作转换为底层数据库操作。这种转换对开发者是透明的,开发者无须关心内部细节,从而将开发者从关系模型中解放出来,使得开发者能以面向对象的思维操作关系数据库。
流行的ORM框架
1、JPA:JPA本身是一种ORM规范,并不是ORM产品。相对于其他开源ORM框架,优势在于其是官方标准,因此具有通用性,若应用程序是面向JPA编程,那么应用程序就可以在各种ORM框架之间切换。
2、Hibernate:被选为JBoss的持久层解决方案,属于Red Hat组织。其灵巧的设计、优秀的性能和丰富的文档,使其成为最流行的开源ORM框架之一。
3、MyBatis:严格意义上并不能称之为ORM框架,它是半自动化的ORM实现,但它并不支持纯粹的面向对象操作,而是允许编程人员直接编写SQL语句,更加灵活。
ORM和Mybatis的更多相关文章
- atitit.动态加载数据库配置in orm hibernate mybatis
atitit.动态加载数据库配置in orm 1. 动态加载数据库配置的优点::: 1 1.1. 组合多个配置文件... 1 1.2. 连接多个数据库 1 2. 基本的流程:::getCfg内存对象, ...
- ORM框架 Mybatis、Hibernate、Spring Data JPA之到底该用谁,谁更牛*
在持久层框架中无可厚非的就是mybatis了,但是也会经常被人问到为啥要用mybatis,为啥不用hibernate,jpa.很多人各级都是地铁爷爷看手机的表情,似乎从来没想过这个问题.“公司叫用我就 ...
- 【ORM】Mybatis与JPA的区别
Mybatis与JPA的区别: 1.ORM映射不同: Mybatis是半自动的ORM框架,提供数据库与结果集的映射: JPA(Hibernate)是全自动的ORM框架,提供对象与数据库的映射: 2.可 ...
- mybatis(一)常见ORM框架及JDBC操作工具类
转载:https://www.cnblogs.com/wuzhenzhao/p/11075569.html 在Java 程序里面去连接数据库,最原始的办法是使用JDBC 的API.我们先来回顾一下 ...
- MyBatis 实践 -Mapper与DAO
MyBatis 实践 标签: Java与存储 MyBatis简介 MyBatis前身是iBatis,是一个基于Java的数据持久层/对象关系映射(ORM)框架. MyBatis是对JDBC的封装,使开 ...
- 初识MyBatis
ORM:对象关系映射,它只是一种规则. 像MyBatis,Hibernate对jdbc进行了封装. 第一章 回顾JDBC开发 1.优点:简单易学,上手快,非常灵活构建SQL(自己写的),效率高.2.缺 ...
- MyBatis快速入门(1):搭建环境和单表映射
一.MyBatis简介 一说起对象关系映射框架,大家第一时间想到的肯定是Hibernate.Hibernate作为一个著名的框架,功能十分强大.我们只需要配置好实体类和数据表之间的关系,Hibe ...
- MyBatis Generator For Eclipse 插件安装
由于在ORM框架MyBatis中,实现数据表于JavaBean映射时,配置的代码比较的复杂,所以为了加快开发的效率,MyBatis官方提供了一个Eclipse的插件, 我izuoyongjiushis ...
- 第一个Mybatis程序示例 Mybatis简介(一)
在JDBC小结中(可以参阅本人JDBC系列文章),介绍到了ORM,其中Mybatis就是一个不错的ORM框架 MyBatis由iBatis演化而来 iBATIS一词来源于“internet”和“aba ...
随机推荐
- Typroa 常用快捷键
Typora 常用快捷键 文件操作 Ctrl + N :新建文件 Ctrl + shift + N :新建窗口 Ctrl + O :打开 Ctrl + P : 快速打开(快速打开之前编辑过的历史文件) ...
- JS---案例:美女时钟
案例:美女时钟 思路: 打开页面就有图片按每秒1张的顺序轮换,用到了日期对象,获取小时和秒. 封装到一个命名函数后,为了使页面打卡就有图片的轮换,先调用下f1,再设置setInterval <! ...
- MySQL Event历史记录
需求 SQL Server的作业历史(Job)记录是保存在msdb库中的,很方便就查询相关的Job定义,计划和历史记录,而MySQL的event却没有历史记录.为方便查看event是否正常执行以及执行 ...
- Springboot整合redis步骤
一.加入依赖 <dependency> <groupId>com.github.spt-oss</groupId> <artifactId>spring ...
- Leetcode7 : Reverse Integer 整数反转问题
问题描述 Example1: x = 123, return 321 Example2: x = -123, return -321 原题链接: https://leetcode.com/proble ...
- 50道Redis面试题史上最全,以后面试再也不怕问Redis了
1.什么是Redis? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存. ...
- Cross-Site Scripting:DOM 跨站点脚本:DOM
- C#深入浅出之操作符和控制流程
操作符 操作符简单举例就是生活中的+-*/等等运算符号,下面会详细讨论运算符内容. 一元正负操作符 有时候需要改变数值的正负号.一元操作符(-)可以使得数字的正负号改变. 例如:int a = -11 ...
- Mysql悲观锁乐观锁区别与使用场景
本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...
- vue element之axios下载文件(后端Python)
axios 接受文件流,需要设置 {responseType:'arraybuffer'} axios.post( apiUrl, formdata, {responseType:'arraybuff ...