对象关系映射只是一个统称,本人觉得意思就是将java的pojo类的字段名持久化到数据库!因为java是面向对象而数据库是面向关系的,所以将之称为对象跟关系之间的映射
对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。
这也同时暗示着额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。
一个简单的映射例子(hibernate),我们定义User对象和数据库中user表之间的关联,user表中只有两列:id和name。
对象:java程序相关(或者说面向对象相关)概念。
关系:数据库相关(现在大多数数据库还是关系型数据库)。
简单来说就是操作一个对象(赋值、校验等等),然后通过一个方法(比如hibernamte的save方法)将对象(或者说对象的属性)保存到数据库中(持久化)。
在数学里,映射是个术语,指两个元素的集之间元素相互“对应”的关系,为名词。映射,或者射影,在数学及相关的领域经常等同于函数。 基于此,部分映射就相当于部分函数,而完全映射相当于完全函数。
对象关系映射,关键字“对象”、“关系”
对象:这个没什么说的,世间万物皆对象,比如人、电视、水
关系:即对象之间的联系,一般有:一对一、一对多、多对多
比如人和国家之间的关系,一个国家可以有很多人(一对多),一个人只能属于一个国家(暂不考虑双重国籍)
再比如一个人和身份证号码,一个人对应一个身份证号码(一对一)
老师和学生之间的关系,一个老师可以教多个学生,一个学生可以被多个老师教 (多对多)
平时多思考多观察才是