Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
IMPLEMENTATION METHOD AND DEVICE FOR ORM STRUCTURE-BASED HIGH EFFICIENCY DATABASE ACCESS
Document Type and Number:
WIPO Patent Application WO/2012/174767
Kind Code:
A1
Abstract:
Disclosed are an implementation method and a device for object-relational mapping (ORM) structure based high efficiency database access. The method comprises: on the basis of a database table, a code generation module generating a data entity code for the database table; on the basis of the data entity code, an ORM module establishing a mapping relation between a physical database and a corresponding database; a data access module using the mapping relation to access a user requested database. Employment of this technical solution enables various databases to be accessed in high efficiency via various development languages; employment of an effective hierarchical architecture design, by using object-oriented way to transfer service data between various hierarchies, increases program maintainability and expansibility; a clear division of work among the various hierarchies facilitates swift developments and team developments; an automated generation of a great proportion of structured query language (SQL) sentences and physical-type elements reduces the workload of development personnel, thereby directing more efforts to the graphic layer designing and system service logic function implementation.

Inventors:
KE ZHIYONG (CN)
CHENG BINGWANG (CN)
Application Number:
PCT/CN2011/077590
Publication Date:
December 27, 2012
Filing Date:
July 25, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZTE CORP (CN)
KE ZHIYONG (CN)
CHENG BINGWANG (CN)
International Classes:
G06F17/30
Foreign References:
CN101546259A2009-09-30
Other References:
REN, JUNWEI: "The Development of CommonTools of C# Upgrade System", CHINA MASTER'S THESES FULL-TEXT DATABASE, 15 September 2007 (2007-09-15), pages 16 - 17, 27-28, 61-68
YIN, SHANHUA ET AL.: "Research on Mapping between Object-oriented Model and Relational Data Model", CHINA MASTER'S THESES FULL-TEXT DATABASE, 15 November 2007 (2007-11-15), pages 42 - 49
Attorney, Agent or Firm:
CHINA PAT INTELLECTUAL PROPERTY OFFICE (CN)
北京派特恩知识产权代理事务所(普通合伙) (CN)
Download PDF:
Claims:
权利要求书

1、 一种基于对象关系映射 ORM架构的高效数据库访问的实现方法, 包括:

A )代码生成器模块根据数据库表, 生成数据库表的数据实体代码;

B ) ORM模块根据所述数据实体代码, 建立实体数据与其对应数据库 的映射关系;

C )数据访问模块利用所述映射关系, 访问用户请求的数据库。

2、 根据权利要求 1所述的方法, 其中, 所述步骤 A ) 包括: 代码生成器模块根据界面展现模块接收的请求, 选择要自动生成代码 的数据库表;

代码生成器模块选择要生成代码的类, 循环遍历所述数据库表的每个 字段, 将数据库表的每个字段和类的规则进行分析处理, 并逐行生成包括 数据实体代码和数据规则代码的类代码;

代码生成器模块将所述数据实体代码和数据规则代码分别保存至数据 实体模块和数据规则模块中。

3、 根据权利要求 2所述的方法, 其中, 执行所述步骤 A前还包括: 代码生成器模块监测数据库, 并在监测到数据库表存在改动时, 通过 界面展现模块进行通知。

4、 根据权利要求 1所述的方法, 其中, 所述步骤 B )还包括: ORM模块分析实体数据, 获取并緩存实体信息;

根据所述实体信息, 得到用于生成 SQL语句的组件;

分析数据库的 SQL语法, 并利用分析结果, 通过所述组件将实体数据 和映射关系拼接成需要的 SQL语句, 以供数据库操作。

5、 根据权利要求 1所述的方法, 其中, 所述步骤 C ) 包括: 数据访问模块建立数据访问资源池, 并从所述数据访问资源池中取出 用于访问数据库的连接资源;

数据访问模块定义基类接口函数, 并得到用于访问数据库的所述基类 接口函数的派生类接口函数;

数据访问模块利用所述连接资源, 通过所述派生类接口函数访问数据 库, 并对数据库进行操作。

6、 根据权利要求 5所述的方法, 其中, 执行所述步骤 C )前还包括: 业务功能模块根据来自界面展现模块的用户请求, 向业务流程模块提 供多个基本业务功能;

业务流程模块将所述多个基本业务功能进行合成, 形成一个完整的业 务流, 以便进行数据库访问。

7、 根据权利要求 1至 6任一项所述的方法, 其中, 所述映射关系包括 以下至少之一:

实体和数据库之间的映射关系;

实体字段和数据库表字段之间的映射关系;

实体作为另外一个实体的一个属性字段时与数据库表之间的映射关 系;

实体作为另外一个实体的一个集合属性时与数据库表之间的映射关 系。

8、 一种基于 ORM架构的高效数据库访问的实现装置, 包括: 代码生成器模块, 用于根据数据库表, 生成数据库表的数据实体代码; ORM模块, 用于根据所述数据实体代码, 建立实体数据与其对应数据 库的映射关系;

数据访问模块, 用于利用所述映射关系, 访问用户请求的数据库。

9、 根据权利要求 8所述的装置, 其中, 该装置还包括:

界面展现模块, 用于接收请求; 数据实体模块, 用于保存数据库表的数据实体的代码;

数据规则模块, 用于保存数据库表的数据规则的代码。

10、 根据权利要求 9所述的装置, 其中, 该装置还包括:

业务功能模块, 根据界面展现模块接收的请求, 向业务流程模块提供 多个基本业务功能;

业务流程模块, 用于将所述多个基本业务功能进行合成, 形成一个完 整的业务流。

Description:
一种基于 ORM架构的高效数据库访问的实现方法及装置 技术领域

本发明涉及一种基于对象关系映射( Object Relational Mapping, ORM ) 架构的高效数据库访问的实现方法及其装置。 背景技术

目前, 面向对象的程序设计方法是企业级应用开发环 境中的主流开发 方法, 而关系型数据库是企业级应用中存放数据的主 流数据存储方式, 因 此在开发过程中, 一些业务逻辑常常需要直接调用结构化查询语 言 ( Structured Query Language, SQL )语句来实现, 但这样开发的缺点是, 到处是 SQL语句, 开发效率很低、 出错率很高、 程序易维护性、 可扩展性 很差等缺点。

为了提高项目的灵活性, 提高开发效率, ORM是一个很好的选择, 当 数据库模型改变时, 不再需要关注逻辑代码和 SQL语句中涉及到该模型的 所有改动, 甚至不做改动就可以满足要求。

但是, 已有 ORM概念的系统的开源框架大多存在以下缺点:

一、 有些功能很强大, 但结构复杂, 不易于程序的移植和代码的复用, 增加了学习使用的成本;

二、 有些结构简单, 但功能又比较弱, 对结构的分层不明确, 既不利 于代码的自动生成, 又不利于分工协作, 因此, 开发效率低;

三、 有些系统 ORM使用不当, 会造成执行效率的下降, 因为 ORM事 实上是通过存储空间的牺牲来换取大量数据库 访问性能的提升, 如果空间 使用不当也会造成性能的下降。 发明内容

本发明的目的在于提供一种基于 ORM 架构的高效数据库访问的实现 方法及装置, 能更好的解决面向对象的程序设计方法与关系 数据库在开发 过程中互不融合的技术问题。

为了解决上述问题, 本发明的技术方案是这样实现的:

一种基于 ORM架构的高效数据库访问的实现方法, 包括:

A )代码生成器模块根据数据库表, 生成数据库表的数据实体代码;

B ) ORM模块根据所述数据实体代码, 建立实体数据与其对应数据库 的映射关系;

C )数据访问模块利用所述映射关系, 访问用户请求的数据库。

其中, 所述步骤 A ) 包括:

代码生成器模块根据界面展现模块接收的请求 , 选择要自动生成代码 的数据库表;

代码生成器模块选择要生成代码的类, 循环遍历所述数据库表的每个 字段, 将数据库表的每个字段和类的规则进行分析处 理, 并逐行生成包括 数据实体代码和数据规则代码的类代码;

代码生成器模块将所述数据实体代码和数据规 则代码分别保存至数据 实体模块和数据规则模块中。

其中, 执行所述步骤 A前还包括:

代码生成器模块监测数据库, 并在监测到数据库表存在改动时, 通过 界面展现模块进行通知。

其中, 所述步骤 B )还包括:

ORM模块分析实体数据, 获取并緩存实体信息;

根据所述实体信息, 得到用于生成 SQL语句的组件;

分析数据库的 SQL语法, 并利用分析结果, 通过所述组件将实体数据 和映射关系拼接成需要的 SQL语句, 以供数据库操作。

其中, 所述步骤 C ) 包括:

数据访问模块建立数据访问资源池, 并从所述数据访问资源池中取出 用于访问数据库的连接资源;

数据访问模块定义基类接口函数, 并得到用于访问数据库的所述基类 接口函数的派生类接口函数;

数据访问模块利用所述连接资源, 通过所述派生类接口函数访问数据 库, 并对数据库进行操作。

其中, 执行所述步骤 C )前还包括:

业务功能模块根据来自界面展现模块的用户请 求, 向业务流程模块提 供多个基本业务功能;

业务流程模块将所述多个基本业务功能进行合 成, 形成一个完整的业 务流, 以便进行数据库访问。

其中, 所述映射关系包括以下至少之一:

实体和数据库之间的映射关系;

实体字段和数据库表字段之间的映射关系;

实体作为另外一个实体的一个属性字段时与数 据库表之间的映射关 系;

实体作为另外一个实体的一个集合属性时与数 据库表之间的映射关 系。

一种基于 ORM架构的高效数据库访问的实现装置, 包括:

代码生成器模块, 用于根据数据库表, 生成数据库表的数据实体代码; ORM模块, 用于根据所述数据实体代码, 建立实体数据与其对应数据 库的映射关系;

数据访问模块, 用于利用所述映射关系, 访问用户请求的数据库。 其中, 该装置还包括:

界面展现模块, 用于接收请求;

数据实体模块, 用于保存数据库表的数据实体的代码;

数据规则模块, 用于保存数据库表的数据规则的代码。

其中, 该装置还包括:

业务功能模块, 根据界面展现模块接收的请求, 向业务流程模块提供 多个基本业务功能;

业务流程模块, 用于将所述多个基本业务功能进行合成, 形成一个完 整的业务流。

与现有技术相比, 本发明的有益效果在于:

1、 本发明解决了面向对象的程序设计方法与关系 数据库在开发过程中 互不融合的问题, 实现了通过不同开发语言如 C#、 java、 C++、 VB、 Delphi 等等, 对不同的数据库如 Oracle, 微软( MS ) SQL— Server, DB2、 Sybase, Access等等进行高效的访问;

2、 本发明通过釆用有效的分层架构设计, 以面向对象的方式在各层之 间传递业务数据, 提高了程序的可维护性和可扩展性, 并且各层之间分工 明确, 便于敏捷开发和多人合作开发;

3、本发明通过自动生成大部分 SQL语句和实体类组件,减轻了应用开 发人员的负荷, 可以将更多的精力投入到视图层设计和系统业 务逻辑功能 实现等上来。 附图说明

图 1是本发明实施例的一种基于 ORM架构的高效数据库访问的实现方 法流程图;

图 2是本发明实施例的一种基于 ORM架构的高效数据库访问的实现装 置结构示意图; 图 3是图 2所示代码生成器模块工作流程图;

图 4是图 2所示 ORM模块工作流程图;

图 5是图 2所示数据访问模块工作流程图。 具体实施方式

以下结合附图对本发明的优选实施例进行详细 说明, 应当理解, 以下 所说明的优选实施例仅用于说明和解释本发明 , 并不用于限制本发明。

图 1显示了本发明实施例的一种基于 ORM架构的高效数据库访问的实 现方法流程图, 如图 1所示, 步骤包括:

步骤 101 : 代码生成器模块根据数据库表, 生成数据库表的数据实体代 码;

步骤 102: 对象关系映射 ( Object Relational Mapping, ORM )模块根 据所述数据实体代码, 建立实体数据与其对应数据库的映射关系;

步骤 103: 数据访问模块利用所述映射关系, 访问用户请求的数据库。 上述步骤 101 包括: 代码生成器模块根据用户通过界面展现模块输 入 的请求, 选择要自动生成代码的数据库表; 代码生成器模块选择要生成代 码的类, 循环遍历所述数据库表的每个字段, 将数据库表的每个字段和类 的规则进行分析处理, 并逐行生成包括数据实体代码和数据规则代码 的类 代码; 代码生成器模块将所述数据实体代码和数据规 则代码分别保存至数 据实体模块和数据规则模块中。 也就是说, 代码生成器模块生成数据实体 代码外, 还可以生成数据规则代码、 存储过程代码、 触发器代码、 数据库 结构文档代码、 SQL脚本代码等等, 用于帮助开发人员快速映射到数据库 中的业务数据模型, 实现快速开发。 随着程序规模和业务的扩展, 保存在 数据实体模块和数据规则模块中的代码将会不 断扩展, 有效降低开发人员 的开发工作量, 保证代码的质量。

上述步骤 101 还包括: 代码生成器模块监测数据库, 当监测到数据库 表存在改动时, 通过界面展现模块通知用户, 提醒开发人员是否生成相应 的代码。

上述步骤 102还包括: ORM模块分析实体数据,获取并緩存实体信息; 根据所述实体信息,得到用于生成 SQL语句的组件; 分析数据库的 SQL语 法, 并利用分析结果, 通过所述组件将实体数据和映射关系拼接成需 要的 SQL语句, 以供数据库操作。 也就是说, ORM模块用对象的形式表示数据 库中的数据, 并通过面向对象的方式将这些对象组织起来, 自动生成具有 增加、 删除、 修改、 查找等功能的 SQL语句, 以便对不同类型的数据库进 行操作。 其中, 所述分析包括对当前字段和类规则进行的词法 分析、 括号 匹配算法分析、 标志符点位分析、 变量定义算法分析、 类结构算法分析。

上述步骤 102 中的实体数据与其对应数据库的映射关系包括 以下至少 之一: 实体和数据库之间的映射关系; 实体字段和数据库表字段之间的映 射关系; 某个实体作为另外一个实体的一个属性字段时 与数据库表之间的 映射关系; 某个实体作为另外一个实体的一个集合属性时 与数据库表之间 的映射关系。

上述步骤 103 包括: 数据访问模块建立数据访问资源池, 并从所述数 据访问资源池中取出用于访问数据库的连接资 源; 数据访问模块定义基类 接口函数, 并得到用于访问数据库的所述基类接口函数的 派生类接口函数; 数据访问模块利用所述连接资源, 通过所述派生类接口函数访问数据库, 并对数据库进行操作。 也就是说, 数据访问模块建立与数据的连接, 以数 据工厂的方式定义基类接口函数, 并使用派生类接口函数实现对各种数据 库的访问。 所述派生类接口函数包括 Oracle数据库访问类具体接口函数、 MS SQL Server数据库访问类具体接口函数、 DB2数据库访问类具体接口 函数、 Sybase数据库访问类具体接口函数、 mysql数据库访问类具体接口函 数。 所述数据库为关系数据库, 例如 Oracle , MysqK Access , Db2、 MS SQL Server^ Sybase等。

图 2显示了本发明提供的一种基于 ORM架构的高效数据库访问的实现 装置结构示意图, 如图 2所示, 包括:

代码生成器模块 d,用于根据数据库表,生成数据库表的数据实 代码。 换句话说, 所述代码生成器模块 d从数据库中提取数据模型信息, 并生成 数据实体代码, 帮助开发人员快速映射数据库中的业务数据模 型, 最优化 快速开发, 由于随着程序规模和业务的扩展, 数据规则模块 e和数据实体 模块 f中的代码会不断的扩展,代码生成器 d自动生成了这部分代码,有效 的解决了开发人员的工作量问题, 并保证了代码质量。 进一步地, 所述代 码生成器模块 d还用于生成数据实体代码、 存储过程的代码、 触发器的代 码、 数据库结构文档的代码、 SQL脚本的代码等等。

ORM模块 h, 用于根据所述数据实体代码, 建立实体数据与其对应数 据库的映射关系。换句话说, 所述 ORM模块 h建立了如下所示的实体和数 据库之间的映射关系中至少之一: 实体字段和数据库表字段之间的映射关 系; 某个实体作为另外一个实体的一个属性字段时 与数据库表之间的映射 关系; 某个实体作为另外一个实体的一个集合属性时 与数据库表之间的映 射关系。进一步地,所述 ORM模块 h分析实体数据,获取并緩存实体信息; 根据所述实体信息,得到用于生成 SQL语句的组件; 分析数据库的 SQL语 法, 并利用分析结果, 通过所述组件将实体数据和映射关系拼接成需 要的 SQL语句, 以供数据库操作。 也就是说, 所述 ORM模块 h用于负责将数 据库中的业务数据用对象的形式表示出来, 并通过面向对象 ( Object-Oriented )的方式将这些对象组织起来,自动生成 SQL各种语句(如 增加、 删除、 修改、 查找), 实现系统业务逻辑的过程, 同时定义一些用于 访问数据库的接口基类。 数据访问模块 g, 用于利用所述映射关系, 访问用户请求的数据库。 换 句话说, 所述数据访问模块 g用于从数据库中存取资源。 进一步地, 所述 数据访问模块 g建立数据访问资源池, 并从所述数据访问资源池中取出用 于访问数据库的连接资源; 数据访问模块 g定义基类接口函数, 并得到用 于访问数据库的所述基类接口函数的派生类接 口函数; 数据访问模块 g利 用所述连接资源, 通过所述派生类接口函数访问数据库, 并对数据库进行 操作。 进一步地, 所述数据访问模块 g以数据工厂的方式向数据规则模块 e 屏蔽所有的 SQL语句以及数据库类型差异, 提供数据访问资源池(Data Access Pool )等。

本发明创新点体现在代码生成器模块 d、数据访问模块 g和 ORM模块 h, 其中:

与现有的代码生成器相比, 本发明所述代码生成器模块 d具有以下创 新点:

1、 所述代码生成器模块 d能根据具体业务生成基于数据规则的数据规 则代码和基于数据实体的数据实体代码;

2、 所述代码生成器模块 d能将生成的代码生成源文件直接嵌入到开发 工具指定的程序中, 做到一步到位;

3、 所述代码生成器模块 d有一个监视线程不断的监视指定的数据库, 并在数据库的表结构、 字段、 字段类型等有改动时, 能自动提醒开发人员 是否要将新生成的代码生成源文件直接嵌入到 开发工具指定的程序;

4、 所述代码生成器模块 d能够根据登陆人信息, 时间, 数据库类型等 自动生成代码文件的注释信息。

与现有的 ORM模块相比, 本发明所述 ORM模块 h的创新点在于: 1、 所述 ORM模块 h能够根据数据实体模块 f传入的实体数据和数据 规则,以反射的机制与数据库映射, 自动高效的生成 SQL语句, 并把 SQL 语句传入数据库执行;

2、所述 ORM模块 h能够针对不同的数据库如 Oracle, MS SQL Server, DB2、 Sybase, Access等等, 高效的生成各自的 SQL语句。

与现有的数据访问模块相比, 本发明所述数据访问模块 g的创新点在 于:

1、 所述数据访问模块 g以数据工厂的方式定义基类接口函数, 并使用 其派生类接口函数实现对各种数据库的访问;

2、所述数据访问模块 g定义了一个数据访问资源池( Data Access Pool ), 进行数据库访问时, 每次向数据访问资源池申请一定数量的连接资 源, 并 得到其中一个连接, 用完后归还所述的连接资源;

3、 所述数据访问模块 g对数据库的访问釆用锁定和释放等机制, 保证 对数据库更新、 保存、 删除, 查找不会出现互斥和资源不够等现象。

所述实现装置还包括:

界面展现模块 a, 用于接收用户输入的请求, 还用于向用户端提供应用 程序的访问、 返回数据等。 其数据釆集的结果以实体对象(Entity object ) 提交给业务逻辑层处理。

数据实体模块 f, 用于保存数据库表的数据实体的代码。 所述数据实体 模块 f还用于承载业务数据,是实际业务数据的载 , 包含业务数据模型的 单元描述, 可以直接由数据库中的某张表或视图生成, 也可以根据需要手 工创建。

数据规则模块 e, 用于保存数据库表的数据规则的代码。 所述数据规则 模块 e还用于实现对数据库访问的增加、 删除、 修改、 查询接口, 并向业 务功能模块 b或业务流程模块 c返回结果。

本发明创新点还体现在数据实体模块 f和数据规则模块 e上, 其中: 与现有的数据实体模块相比, 本发明所述数据实体模块 f 的创新点在 于:

1、 所述数据实体模块 f的所有代码都可以由代码生成器模块 d自动生 成;

2、 所述数据实体模块 f中各类与数据库表一一对应, 能把取值以实体 对象的方式传送到 ORM模块 h中, 以便进行映射。

与现有的数据规则模块相比, 本发明所述数据规则模块 e具有以下创 新点:

1、 所述数据规则模块 e的大部分代码能够通过代码生器模块 d自动生 成, 例如增加、 删除、 修改接口的代码;

2、 所述数据规则模块 e中各类与数据库表——对应, 容易移植, 结构 清晰。

所述实现装置还包括:

业务功能模块 b, 根据来自界面展现模块 a的用户请求, 向业务流程模 块提供多个基本业务功能。 也就是说, 所述业务功能模块 b用于负责基本 业务功能的实现, 例如根据界面展现模块 a发送的用户请求实现各种情况 的处理、 各种算法的实现、 并向业务流程模块提供数据 界面展现模块 a 提供数据等。

业务流程模块 c, 用于将所述多个基本业务功能进行合成, 形成一个完 整的业务流, 例如工作流等。

本发明釆用三层架构, 包括表现层、 业务逻辑层、 数据访问层。 其中, 所述界面展现模块 a属于表示层, 所述业务功能模块 b、 所述业务流程模块 c、 所述代码生成器模块 d属于业务逻辑层, 所述数据规则模块 e、 所述数 据实体模块 f、 所述数据访问模块 g、 所述 ORM模块 h属于数据访问层。 所述三层架构有利于降低各层之间的依赖, 使开发人员可以只关注其中某 一层。 图 3显示了图 2所示代码生成器模块工作流程图, 如图 3所示, 步骤 包括:

步骤 302: 用户通过客户端界面输入服务器 IP、数据库类型、服务器类 型、 用户名、 密码后, 与数据库服务器建立连接, 加载数据库名, 并选择 数据库, 登陆所选择的数据库;

步骤 304: 加载所选数据库的所有表, 选择要自动生成代码的表; 步骤 306: 读取所选择的表信息, 如字段, 表空间, 主键等, 并选择要 生成代码的类型;

步骤 308:循环遍历所选择表的各字段,并判断是否 部遍历,如果是, 则执行步骤 318, 否则, 执行步骤 310;

步骤 310: 读取数据库当前选择表的字段信息, 如字段名、 类型、 长度 等;

步骤 312: 生成类的说明文件信息, 如空间名等;

步骤 314: 对当前数据库表的字段和类的规则进行词法分 析、括号匹配 算法分析、 标志符点位分析、 变量定义算法分析、 类结构算法分析等分析 处理;

步骤 316:以追加的方式逐行生成包括数据实体代码 数据规则代码的 类代码, 并根据语法进行着色、 缩进等处理;

步骤 318: 将以上生成的源代码在界面展现模块上显示出 来, 并生成文 本文件存到电脑硬盘指定位置。

图 4显示了图 2所示 ORM模块工作流程图, 如图 4所示, 步骤包括: 步骤 402: ORM模块建立实体数据与其对应数据库的映射关 系, 即 ORM模块描述实体和数据库之间的映射关系、 描述实体字段和数据库表字 段之间的映射关系、 某个实体作为另外一个实体的一个属性字段时 与数据 库表之间的映射关系、 某个实体作为另外一个实体的一个集合属性时 与数 据库表之间的映射关系;

步骤 404: ORM模块的实体分析器分析实体数据, 获取并緩存实体信 息, 即所述实体分析器对实体对象进行必要的数据 分析, 获得实体对象的 各种信息并緩存, 以便在后续的工作中直接提取数据;

步骤 406: ORM模块的 ORM引擎根据所述实体信息, 得到用于生成 SQL语句的组件, 即所述 ORM引擎实现用于自动生成 SQL语句(如增加、 删除、 修改、 查询等功能) 的组件;

步骤 408: ORM模块的 SQL语句分析组件分析数据库的 SQL语法, 并利用分析结果, 通过步骤 406 中所述的组件将实体数据和映射关系拼接 成需要的 SQL语句, 即所述 SQL语句分析组件对不同数据库的 SQL语法 进行分析, 通过对 SQL语句分析,把实体对象和关系拼接成需要的 SQL语 句, 为 ORM引擎服务;

步骤 410: ORM模块的数据库操作库通过调用 ADO.net、 ODBC、JDBC、 Source Pro等工具所提供的数据库访问接口, 将 SQL语句传入数据库, 以 便对不同类型数据库进行操作。

图 5显示了图 2所示数据访问模块工作流程图, 如图 5所示, 步骤包 括:

步骤 502: 数据访问模块的数据访问工厂获取数据库连接 字符串, 并解 密, 建立与数据库的联系; 实现数据访问资源池, 并从所述数据访问资源 池中取出或释放连接资源; 向 ORM模块返回数据库连接对象, 如 MS SQL— Server对象、 Oracle对象, DB2对象等等; 证、 创建、 取得或归还资源对象、 垃圾回收、 锁定, 解锁等功能;

步骤 506: 数据访问模块实现对数据库访问的基类接口函 数的定义; 步骤 508: 实现 Oracle数据库访问类具体接口函数, 并通过所述具体 接口函数访问 Oracle数据库;

步骤 510: 实现 MS SQL— Server数据库访问类具体接口函数, 并通过 所述具体接口函数访问 MS SQL— Server数据库;

步骤 512: 实现 DB2数据库访问类具体接口函数, 并通过所述具体接 口函数访问 DB2数据库;

步骤 514: 实现 Sybase数据库访问类具体接口函数, 并通过所述具体 接口函数访问 Sybase数据库;

步骤 516: 实现 mysql数据库访问类具体接口函数, 并通过所述具体接 口函数访问 mysql数据库。

用户通过本发明所述装置访问某一个数据库时 , 可以利用其需要访问 的数据库的具体接口函数访问所述数据库, 即步骤 508至步骤 516所述的 任意一步。

综上所述, 本发明的技术效果在于:

1、本发明把一些有规则的模块独立出来,使 量 SQL代码可以完全由 代码生成器生成自动, 不仅保证了程序的质量, 还极大的提高了开发的效 率;

2、 本发明通过釆用 ORM机制, 各层之间通过面向对象的方式传递业 务数据, 使程序很容易修改, 不存在一处改动影响全局的问题, 易维护性 强;

3、 本发明各模块之间分工明确, 易于移植, 即使换了项目, 底层代码 可以公用。

尽管上文对本发明进行了详细说明, 但是本发明不限于此, 本技术领 域技术人员可以根据本发明的原理进行各种修 改。 因此, 凡按照本发明原 理所作的修改, 都应当理解为落入本发明的保护范围。