相关ORM

ORM (Object relation mapping)

对象关系映射

10.1.1什么是ORM

ORM并不是一种具体的产品,而是一类框架的总称,它概述了这类框架的基本特征:完成面向对象的程序设计语言到关系数据库的映射。基于ORM框架完成映射后,既可利用面向对象程序设计语言的简单易用性,又可利用关系数据库的技术优势。

面向对象程序设计语言与关系数据库发展不同步时,需要一种中间解决方案,ORM框架就是这样的解决方案。笔者认为,随着面向对象数据库的发展,其理论逐步完善,最终会取代关系数据库。只是这个过程不可一蹴而就,ORM框架在此期间内会蓬勃发展。但随着面向对象数据库的出现,ORM工具会自动消亡。

10.1.2为什么需要ORM

在上一节已经基本回答了这个问题,面向对象的程序设计语言,代表了目前程序设计语言的主流和趋势,其具备非常多的优势,比如:

面向对象的建模、操作。

多态、继承。

摒弃难以理解的过程。

简单易用,易理解性。

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

大量数据操作查找、排序。

集合数据连接操作、映射。

数据库访问的并发、事务。

数据库的约束、隔离。

面对这种面向对象语言与关系数据库系统并存的局面,采用ORM就变成一种必然。

10.1.3流行的ORM框架简介

目前ORM框架的产品非常多,除了各大著名公司、组织的产品外,甚至,其他一些小团队也都有推出自己的ORM框架。目前流行的ORM框架有如下这些产品。

大名鼎鼎的Hibernate:出自GavinKing的手笔,目前最流行的开源ORM框架,其灵巧的设计,优秀的性能,还有丰富的文档,都是其迅速风靡全球的重要因素。

传统的EntityEJB:EntityEJB实质上也是一种ORM技术,这是一种备受争议的组件技术,很多人说它非常优秀,也有人说它一钱不值。事实上,EJB为J2EE的蓬勃发展赢得了极高的声誉,就笔者的实际开发经验而言,EJB作为一种重量级、高花费的ORM技术上,具有不可比拟的优势。但由于其必须运行在EJB容器内,而且学习曲线陡峭,开发周期、成本相对较高,因而限制EJB的广泛使用。

IBATIS:Apache软件基金组织的子项目。与其称它是一种ORM框架,不如称它是一种“SqlMapping”框架。相对Hibernate的完全对象化封装,iBATIS更加灵活,但开发过程中开发人员需要完成的代码量更大,而且需要直接编写SQL语句。

Oracle的TopLink:作为一个遵循OTN协议的商业产品,TopLink在开发过程中可以自由下载和使用,但一旦作为商业产品使用,则需要收取费用。可能正是这一点,导致了TopLink的市场占有率。

      OJB:Apache软件基金组织的子项目。开源的ORM框架,但由于开发文档不是太多,而且OJB的规范一直并不稳定,因此并未在开发者中赢得广泛的支持。

笔记

what:

ORM(ObjectRelationMapping)

    自动完成对象到关系型数据映射的过程或机制就叫做ORM

ORM主流框架包括:JPA, ibatis, Hibernate.

why:

1.快速开发

2.减少重复代码.

3.提高代码的可复用性.

   4.便于管理与维护

how:

1.创建操作数据库专用的xml.

2.在数据库xml文件中配置sql语句以及对象映射关系.

3.在SqlMapConfig.xml中配置数据库连接以及操作数据库的xml文件.

4.创建一个专用的SqlMapConfigUtil的工具类,用来解析sqlMapConfig.xml文件

   5.通过sqlMapConfigUitl工具类得到sqlMapConfig对象,并与数据库的xml文件建立映射,执行操作.

关系型数据映射为对象

第一步:获取类的路径

第二步:获取所有字段

第三步:类的实例化

第四部:通过反射得到所有的方法

第五步:通过遍历方法数组,得到方法名

第六步:判断只以set开头的方法,得到字段名

第七步:判断当前字段是否使用,如果存在,则采用隐式的方法调用

详细步骤

 

相关推荐