昨天米老师给我普及了一下基础知识,比如ORM、SOA、JPA、AOP等等,让我受益匪浅!所以,今天通过查资料,将这些东西整理一下。。
背景
在当今的企业级应用开发环境中,面向对象是主流开发方法,关系数据库是主流数据存储系统。
面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。
对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系。但是在数据库中,关系数据无法直接表达多对多关联和继承关系。
因此,为了解决这个不匹配的现象,对象关系映射技术应运而生。
定义
广义
ORM(Object Relational Mapping)一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。
狭义
基于关系型数据库的数据存储,实现一个虚拟的、面向对象的数据访问接口。
作用
实体的变化自动映射到数据库的变化。
原理
1、跟踪实体的变化
2、根据映射关系和实体的变化,生成相应的sql脚本,并执行到数据库中
组成
ORM一般包括以下四部分:
一个API:可将持久类对象进行CRUD操作;
一种语言(或API):用来规定和类、及其类属性相关的查询;
一种工具:用来规定mapping metadata;
一种技术:可以让ORM的实现同事务对象一起进行dirtychecking, lazy association fetching以及其他的优化操作。
总结
点滴知识的积累!