博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

深入理解 ORM框架

Posted on 2019-02-24 20:38  preface小贝  阅读(2743)  评论(0编辑  收藏  举报

1、ORM是什么?

object Relational mapping 对象关系映射,是一种为了解决面向对象与关系型数据库存在不匹配现象的技术,简单说,orm通过描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系型数据库中

orm方法论的三个原则:
简单:以最基本的形式建模数据
传达性:数据库接口被任何人都能理解的语言文档化
精确性:基于数据库模型创建正确的标准化结构

为什么使用ORM:
当你开发一个程序的时候,不使用orm,可能会学不少数据访问层的代码,用来从数据库保存、删除、读取对象的信息,但是其中很多代码是重复的,可以减少代码量

ORM解决的主要问题是对象关系映射,域模型和关系模型分别建立在概念模型的基础上,域模型是面向对象的,而关系模型是面向关系的,一般情况下,一个持久类和一个表的对应,类的每个实例对应表中的一条记录,类的每个属性对应表的每个字段

ORM技术特点:
1、提高了开发效率,由于ORM可以自动对Entity对象与数据库表中进行字段和属性的映射,所以我们就不需要了数据访问层
2、ORM提供了对数据库的映射,不用写sql语句就可以操作数据库


ORM优缺点
优点:
提高开发效率,降低开发成本
纯粹的面向对象开发
可移植

缺点
1、从系统结构上来看,采用ORM框架一般分多层,系统的层次多了,会降低系统性能,ORM是完全面向对象的做法,而面向对象的做法也会性能产生影响
2、在数据库应用上可能被误用,主要体现在对持久对象的提取和数据加工处理上,如果用上ORM,可能将全部的数据提取到内存对象中,这就会产生性能问题
3、在做对象持久化时,ORM会持久化所有的对象,我们不希望这样,也会降低程序性能
4、在进行多级联表查询时,ORM语法会变得复杂
5、EF对各个数据的支持程度是不对称的

什么是持久化为什么要持久化
持久,即把内存中的对象永久保存到设备存储中,持久化的主要应用是讲内存中的数据存储在关系型数据库中,也可存储到磁盘文件和XML中

持久层:将数据使用者和数据实体相关联

 

orm操作数据库流程图: