对象/关系数据库映射.

ORM的全称是:Object Relational Mapping,即对象/关系数据库映射.

       当使用一种面向对象的编程语言来进行应用开发时,从项目一开始就采用的是面向对象分析,面向对象设计,面向对象编程,但到了持久层数据库访问时,又必须重返关系数据库的访问方式,这是一种非常糟糕的感觉.于是人们需要一种工具,它可以把关系型数据库包装成面向对象的模型.它就是ORM.

    ORM框架是面向对象程序设计语言与关系数据库发展不同步时的中间解决方案.随着面向对象数据库的发展,其理论逐步完善,最终面向对象数据库会取代关系型数据库.只是这个过程不可一蹴而就,ORM框架在此期间会蓬勃发展.但随着面向对象数据库的广泛使用,ORM工具会逐渐消亡.

    面向对象程序设计语言仍然是现在的主流和趋势,其具备非常多的优势,如:

    面向对象的建模,操作.

    多态,继承

    摒弃难以理解的过程.

    简单易用,易理解

但数据库的发展并未能与程序设计语言同步.但关系数据库系统的某些优势也是面向对象语言目前无法比拟的.比如:

大量数据查找,排序

集合数据连接操作,映射

数据库访问的并发,事务

数据库的约束,隔离

面对这种面向对象语言与关系数据库系统并存的局面,采用ORM就变成了一种必然.只要依然采用面向对象程序设计语言,底层依然采用关系型数据库,中间就少不了ORM工具.

采用ORM框架之后,应用程序不再直接访问底层数据库,而是以面向对象的方式来操作持久化对象(例如创建,修改,删除等),而ORM框架则将这些面向对象的操作转化成底层的SQL操作


ORM基本映射关系

数据表映射表.

持久化类被映射到一个数据表.程序使用这个持久化来创建实例,修改属性,删除实例时,系统自动会转换成为对这个表进行CRUD操作

受ORM管理的持久化类(就是一个普通的Java类)对应一个数据库,只要程序对这个持久化类进行操作,系统就会可以将其转换成对应数据库表的操作

数据表的行映射对象(即实例)

持久化类会生成很多的实例,每个实例就对应数据表中的一行记录.当程序在应用中修改持久化类的某个实例时,ORM工具将会将其转换成对应数据表中特定行的操作,每个持久化对象对应数据表的一行记录
 

数据表的列(字段)映射对象的属性

当程序修改某个持久化对象的指定属性时(持久化实例映射到数据行),ORM将会将其转换成对应数据表中指定数据行,指定列的操作

可见,在ORM框架中,持久化对象就是一种媒介,应用程序只需操作持久化对象,ORM框架则负责将这种操作转换为底层数据库操作

流行的ORM框架:

JPA

Hibernate

Mybatis

猜你喜欢

转载自blog.csdn.net/weixin_38218338/article/details/88637253