1.对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术
2.简单的说,ORM是经过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中程序员
1.采用硬编码方式,为每一种可能的数据库访问操做提供单独的方法算法
2.方案的不足之处:sql
1.采用映射元数据来描述对象关系的映射,使得ORM中间件能在任何一个应用的业务逻辑层和数据库层之间充当桥梁数据库
2.ORM的方法论基于三个核心原则:app
1.之因此本身写ORM框架,是为了更好的理解框架的实现原理框架
2.要实现的功能:工具
3.为何要建立表:性能
4.目的:编码
create tabel user(id int primary key auto_increment, name char(20), psw char(20), vip tinyint default 0, extra float, utype tinyint defatult 0, islock tinyint default 0) # o 表示False 1表示True # utype字段,0表示用户,1表示管理员
# 1.让咱们从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。几乎全部的程序里面,都存在对象和关系数据库。在业务逻辑层和用户界面层中,咱们是面向对象的。当对象信息发生变化的时候,咱们须要把对象的信息保存在关系数据库中 # 2.当你开发一个应用程序的时候(不使用O/R Mapping),你可能会写很多数据访问层的代码,用来从数据库保存,删除,读取对象信息,等等。你在DAL中写了不少的方法来读取对象数据,改变状态对象等等任务。而这些代码写起来老是重复的 # 3.ORM解决的主要问题是对象关系的映射。域模型和关系模型分别是创建在概念模型的基础上的。域模型是面向对象的,而关系模型是面向关系的。通常状况下,一个持久化类和一个表对应,类的每一个实例对应表中的一条记录,类的每一个属性对应表的每一个字段 # 4.ORM技术特色: # 4.1 提升了开发效率。因为ORM能够自动对Entity对象与数据库中的Table进行字段与属性的映射,因此咱们实际可能已经不须要一个专用的、庞大的数据访问层 # 4.2 ORM提供了对数据库的映射,不用sql直接编码,可以像操做对象同样从数据库获取数据
# ORM的缺点是会牺牲程序的执行效率和会固定思惟模式: # 1.从系统结构上来看,采用ORM的系统通常都是多层系统,系统的层次多了,效率就会下降。ORM是一种彻底的面向对象的作法,而面向对象的作法也会对性能产生必定的影响 # 2.在咱们开发系统时,通常都有性能问题。性能问题主要产生在算法不正确和与数据库不正确的使用上。ORM所生成的代码通常不太可能写出很高效的算法,在数据库应用上更有可能会被误用,主要体如今对持久对象的提取和和数据的加工处理上,若是用上了ORM,程序员颇有可能将所有的数据提取到内存对象中,而后再进行过滤和加工处理,这样就容易产生性能问题 # 3.在对对象作持久化时,ORM通常会持久化全部的属性,有时,这是不但愿的 # 4.但ORM是一种工具,工具确实能解决一些重复,简单的劳动。这是不能否认的。但咱们不能期望工具能一劳永逸的解决全部问题,有些问题仍是须要特殊处理的,但须要特殊处理的部分对绝大多数的系统,应该是不多的