ORM带来了什么
面向对象的程序设计语言,代表了目前程序设计语言的主流和趋势,其具备非常多的优势,比如:
面向对象的建模、操作。
多态、继承。
摒弃难以理解的过程。
简单易用,易理解性。
但数据库的发展并未与程序设计语言同步,而且关系数据库系统的某些优势,也是面向对象的语言目前无法解决的。比如:
大量数据操作查找、排序。
集合数据连接操作、映射。
数据库访问的并发、事务。
数据库的约束、隔离。
面对这种面向对象语言与关系数据库系统并存的局面,采用ORM就变成一种必然。ORM工具的作用就是把对持久化对象的操作转换成对数据库的操作。从此,程序员可以以面向对象的方式操作持久化对象,而ORM框架则负责转换成对应的SQL(结构化查询语言)操作。如图9.3所示,ORM如何把业务对象与关系数据库中的数据结构联系起来。
[img]http://dl.iteye.com/upload/attachment/481477/092c5173-4de3-3305-bac8-6a4af5a2dceb.jpg[/img]
说明
目前已经有厂商(如Oracle)推出了面向对象数据库,也有开源的面向数据库如db4o出现。它们与面向对象的应用程序之间可实现无缝连接,那么也就无需ORM产品。但目前其发展方向仍不明朗,理论研究也在进行中,在很多方面还不具备取代关系型数据库的能力。
面向对象的程序设计语言,代表了目前程序设计语言的主流和趋势,其具备非常多的优势,比如:
面向对象的建模、操作。
多态、继承。
摒弃难以理解的过程。
简单易用,易理解性。
但数据库的发展并未与程序设计语言同步,而且关系数据库系统的某些优势,也是面向对象的语言目前无法解决的。比如:
大量数据操作查找、排序。
集合数据连接操作、映射。
数据库访问的并发、事务。
数据库的约束、隔离。
面对这种面向对象语言与关系数据库系统并存的局面,采用ORM就变成一种必然。ORM工具的作用就是把对持久化对象的操作转换成对数据库的操作。从此,程序员可以以面向对象的方式操作持久化对象,而ORM框架则负责转换成对应的SQL(结构化查询语言)操作。如图9.3所示,ORM如何把业务对象与关系数据库中的数据结构联系起来。
[img]http://dl.iteye.com/upload/attachment/481477/092c5173-4de3-3305-bac8-6a4af5a2dceb.jpg[/img]
说明
目前已经有厂商(如Oracle)推出了面向对象数据库,也有开源的面向数据库如db4o出现。它们与面向对象的应用程序之间可实现无缝连接,那么也就无需ORM产品。但目前其发展方向仍不明朗,理论研究也在进行中,在很多方面还不具备取代关系型数据库的能力。