【ITOO】浅谈ORM

来源:互联网 发布:all in one seo pack 编辑:程序博客网 时间:2024/06/04 19:09

   昨天米老师给我普及了一下基础知识,比如ORM、SOA、JPA、AOP等等,让我受益匪浅!所以,今天通过查资料,将这些东西整理一下。。


   背景

   在当今的企业级应用开发环境中,面向对象是主流开发方法,关系数据库是主流数据存储系统。

   面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。

   对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系。但是在数据库中,关系数据无法直接表达多对多关联和继承关系。

   因此,为了解决这个不匹配的现象,对象关系映射技术应运而生。


   定义

   广义

   ORM(Object Relational Mapping)一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

   狭义

   基于关系型数据库的数据存储,实现一个虚拟的、面向对象的数据访问接口。

 

   作用

   实体的变化自动映射到数据库的变化。

 

   原理

   1、跟踪实体的变化

   2、根据映射关系和实体的变化,生成相应的sql脚本,并执行到数据库中

 

   组成

   ORM一般包括以下四部分:

   一个API:可将持久类对象进行CRUD操作;

   一种语言(或API):用来规定和类、及其类属性相关的查询;

   一种工具:用来规定mapping metadata;

   一种技术:可以让ORM的实现同事务对象一起进行dirtychecking, lazy association fetching以及其他的优化操作。

 

   总结

   点滴知识的积累!

 

 

1 0