CN102841889A - 一种基于orm架构的高效数据库访问的实现方法及装置 - Google Patents

一种基于orm架构的高效数据库访问的实现方法及装置 Download PDF

Info

Publication number
CN102841889A
CN102841889A CN201110165590XA CN201110165590A CN102841889A CN 102841889 A CN102841889 A CN 102841889A CN 201110165590X A CN201110165590X A CN 201110165590XA CN 201110165590 A CN201110165590 A CN 201110165590A CN 102841889 A CN102841889 A CN 102841889A
Authority
CN
China
Prior art keywords
database
module
data
code
entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201110165590XA
Other languages
English (en)
Inventor
柯志勇
程兵旺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201110165590XA priority Critical patent/CN102841889A/zh
Priority to PCT/CN2011/077590 priority patent/WO2012174767A1/zh
Publication of CN102841889A publication Critical patent/CN102841889A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于ORM架构的高效数据库访问的实现方法及装置,方法包括以下步骤:代码生成器模块根据数据库表,生成数据库表的数据实体代码;ORM模块根据所述数据实体代码,建立实体数据与其对应数据库的映射关系;数据访问模块利用所述映射关系,访问用户请求的数据库。本发明实现了通过不同开发语言高效访问不同的数据库;通过采用有效的分层架构设计,以面向对象的方式在各层之间传递业务数据,提高了程序的可维护性和可扩展性,并且各层之间分工明确,便于敏捷开发和多人合作开发;通过自动生成大部分SQL语句和实体类组件,减轻了应用开发人员的负荷,使其把更多的精力投入到视图层设计和系统业务逻辑功能实现等上来。

Description

一种基于ORM架构的高效数据库访问的实现方法及装置
技术领域
本发明涉及一种基于对象关系映射(Object Relational Mapping,ORM)架构的高效数据库访问的实现方法及其装置。
背景技术
目前,面向对象的程序设计方法是企业级应用开发环境中的主流开发方法,而关系型数据库是企业级应用中存放数据的主流数据存储方式,因此在开发过程中,一些业务逻辑常常需要直接调用结构化查询语言(Structured QueryLanguage,SQL)语句来实现,但这样开发的缺点是,到处是SQL语句,开发效率很低、出错率很高、程序易维护性、可扩展性很差等缺点。
为了提高项目的灵活性,提高开发效率,ORM是一个很好的选择,当数据库模型改变时,不再需要关注逻辑代码和SQL语句中涉及到该模型的所有改动,甚至不做改动就可以满足要求。
但是,已有ORM概念的系统的开源框架大多存在以下缺点:
一、有些功能很强大,但结构复杂,不易于程序的移植和代码的复用,增加了学习使用的成本;
二、有些结构简单,但功能又比较弱,对结构的分层不明确,既不利于代码的自动生成,又不利于分工协作,因此,开发效率低;
三、有些系统ORM使用不当,会造成执行效率的下降,因为ORM事实上是通过存储空间的牺牲来换取大量数据库访问性能的提升,如果空间使用不当也会造成性能的下降。
发明内容
本发明的目的在于提供一种基于ORM架构的高效数据库访问的实现方法及装置,能更好的解决面向对象的程序设计方法与关系数据库在开发过程中互不融合的技术问题。
根据本发明的一个方面,本发明提供的一种基于ORM架构的高效数据库访问的实现方法包括:
A)代码生成器模块根据数据库表,生成数据库表的数据实体代码;
B)ORM模块根据所述数据实体代码,建立实体数据与其对应数据库的映射关系;
C)数据访问模块利用所述映射关系,访问用户请求的数据库。
所述步骤A)包括:
代码生成器模块根据用户通过界面展现模块输入的请求,选择要自动生成代码的数据库表;
代码生成器模块选择要生成代码的类,循环遍历所述数据库表的每个字段,将数据库表的每个字段和类的规则进行分析处理,并逐行生成包括数据实体代码和数据规则代码的类代码;
代码生成器模块将所述数据实体代码和数据规则代码分别保存至数据实体模块和数据规则模块中。
所述分析包括对当前字段和类规则进行的词法分析、括号匹配算法分析、标志符点位分析、变量定义算法分析、类结构算法分析。
执行所述步骤A前还包括:
代码生成器模块监测数据库,并在监测到数据库表存在改动时,通过界面展现模块通知用户。
所述步骤B)中实体数据与其对应数据库的映射关系包括:
实体和数据库之间的映射关系、实体字段和数据库表字段之间的映射关系、某个实体作为另外一个实体的一个属性字段时与数据库表之间的映射关系、某个实体作为另外一个实体的一个集合属性时与数据库表之间的映射关系。
所述步骤B)还包括:
ORM模块分析实体数据,获取并缓存实体信息;
根据所述实体信息,得到用于生成SQL语句的组件;
分析数据库的SQL语法,并利用分析结果,通过所述组件将实体数据和映射关系拼接成需要的SQL语句,以供数据库操作。
所述步骤C)包括:
数据访问模块建立数据访问资源池,并从所述数据访问资源池中取出用于访问数据库的连接资源;
数据访问模块定义基类接口函数,并得到用于访问数据库的所述基类接口函数的派生类接口函数;
数据访问模块利用所述连接资源,通过所述派生类接口函数访问数据库,并对数据库进行操作。
所述派生类接口函数包括Oracle数据库访问类具体接口函数、MS SQLServer数据库访问类具体接口函数、DB2数据库访问类具体接口函数、Sybase数据库访问类具体接口函数、mysql数据库访问类具体接口函数。
执行所述步骤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、Mysql、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发送的用户请求实现各种情况的处理、各种算法的实现、并向业务流程模块提供数据c、界面展现模块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、SourcePro等工具所提供的数据库访问接口,将SQL语句传入数据库,以便对不同类型数据库进行操作。
图5显示了图2所示数据访问模块工作流程图,如图5所示,步骤包括:
步骤502:数据访问模块的数据访问工厂获取数据库连接字符串,并解密,建立与数据库的联系;实现数据访问资源池,并从所述数据访问资源池中取出或释放连接资源;向ORM模块返回数据库连接对象,如MS SQL Server对象、Oracle对象,DB2对象等等;
步骤504:数据访问模块的数据库资源池组件实现对数据访问资源的验证、创建、取得或归还资源对象、垃圾回收、锁定,解锁等功能;
步骤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、本发明各模块之间分工明确,易于移植,即使换了项目,底层代码可以公用。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

Claims (10)

1.一种基于ORM架构的高效数据库访问的实现方法,其特征在于,包括:
A)代码生成器模块根据数据库表,生成数据库表的数据实体代码;
B)对象关系映射(Object Relational Mapping,ORM)模块根据所述数据实体代码,建立实体数据与其对应数据库的映射关系;
C)数据访问模块利用所述映射关系,访问用户请求的数据库。
2.根据权利要求1所述的实现方法,其特征在于,所述步骤A)包括:
代码生成器模块根据用户通过界面展现模块输入的请求,选择要自动生成代码的数据库表;
代码生成器模块选择要生成代码的类,循环遍历所述数据库表的每个字段,将数据库表的每个字段和类的规则进行分析处理,并逐行生成包括数据实体代码和数据规则代码的类代码;
代码生成器模块将所述数据实体代码和数据规则代码分别保存至数据实体模块和数据规则模块中。
3.根据权利要求2所述的实现方法,其特征在于,执行所述步骤A前还包括:
代码生成器模块监测数据库,并在监测到数据库表存在改动时,通过界面展现模块通知用户。
4.根据权利要求1所述的实现方法,其特征在于,所述步骤B)中实体数据与其对应数据库的映射关系包括:
实体和数据库之间的映射关系、实体字段和数据库表字段之间的映射关系、某个实体作为另外一个实体的一个属性字段时与数据库表之间的映射关系、某个实体作为另外一个实体的一个集合属性时与数据库表之间的映射关系。
5.根据权利要求4所述的实现方法,其特征在于,所述步骤B)还包括:
ORM模块分析实体数据,获取并缓存实体信息;
根据所述实体信息,得到用于生成SQL语句的组件;
分析数据库的SQL语法,并利用分析结果,通过所述组件将实体数据和映射关系拼接成需要的SQL语句,以供数据库操作。
6.根据权利要求1所述的实现方法,其特征在于,所述步骤C)包括:
数据访问模块建立数据访问资源池,并从所述数据访问资源池中取出用于访问数据库的连接资源;
数据访问模块定义基类接口函数,并得到用于访问数据库的所述基类接口函数的派生类接口函数;
数据访问模块利用所述连接资源,通过所述派生类接口函数访问数据库,并对数据库进行操作。
7.根据权利要求6所述的实现方法,其特征在于,执行所述步骤C)前还包括:
业务功能模块根据来自界面展现模块的用户请求,向业务流程模块提供多个基本业务功能;
业务流程模块将所述多个基本业务功能进行合成,形成一个完整的业务流,以便进行数据库访问。
8.一种基于ORM架构的高效数据库访问的实现装置,其特征在于,包括:
代码生成器模块,用于根据数据库表,生成数据库表的数据实体代码;
ORM模块,用于根据所述数据实体代码,建立实体数据与其对应数据库的映射关系;
数据访问模块,用于利用所述映射关系,访问用户请求的数据库。
9.根据权利要求8所述的实现装置,其特征在于,还包括:
界面展现模块,用于接收用户输入的请求;
数据实体模块,用于保存数据库表的数据实体的代码;
数据规则模块,用于保存数据库表的数据规则的代码。
10.根据权利要求8所述的实现装置,其特征在于,还包括:
业务功能模块,根据来自界面展现模块的用户请求,向业务流程模块提供多个基本业务功能;
业务流程模块,用于将所述多个基本业务功能进行合成,形成一个完整的业务流。
CN201110165590XA 2011-06-20 2011-06-20 一种基于orm架构的高效数据库访问的实现方法及装置 Pending CN102841889A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110165590XA CN102841889A (zh) 2011-06-20 2011-06-20 一种基于orm架构的高效数据库访问的实现方法及装置
PCT/CN2011/077590 WO2012174767A1 (zh) 2011-06-20 2011-07-25 一种基于orm架构的高效数据库访问的实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110165590XA CN102841889A (zh) 2011-06-20 2011-06-20 一种基于orm架构的高效数据库访问的实现方法及装置

Publications (1)

Publication Number Publication Date
CN102841889A true CN102841889A (zh) 2012-12-26

Family

ID=47369262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110165590XA Pending CN102841889A (zh) 2011-06-20 2011-06-20 一种基于orm架构的高效数据库访问的实现方法及装置

Country Status (2)

Country Link
CN (1) CN102841889A (zh)
WO (1) WO2012174767A1 (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226478A (zh) * 2013-05-22 2013-07-31 北京金和软件股份有限公司 一种自动生成并使用代码的方法
CN103744651A (zh) * 2013-12-20 2014-04-23 柳州职业技术学院 一种面向业务需求的业务处理模型自动生成方法
CN104461495A (zh) * 2014-10-31 2015-03-25 北京思特奇信息技术股份有限公司 一种实现数据持久层分离的方法及系统
CN104933576A (zh) * 2015-06-09 2015-09-23 广西家之宝网络科技有限公司 具有消息缓存功能的基于orm框架的电商平台
CN104933521A (zh) * 2015-06-09 2015-09-23 广西家之宝网络科技有限公司 基于orm框架的数据同步传递电商系统
CN104933578A (zh) * 2015-06-09 2015-09-23 广西家之宝网络科技有限公司 基于orm框架电商平台
CN104933577A (zh) * 2015-06-09 2015-09-23 广西家之宝网络科技有限公司 具有消息缓存功能的基于orm框架的电商系统
CN105447051A (zh) * 2014-09-22 2016-03-30 普天信息技术有限公司 一种数据库操作的方法和装置
CN105550242A (zh) * 2015-12-08 2016-05-04 方正移动传媒技术(北京)有限公司 关系数据库数据处理方法及装置
CN105677751A (zh) * 2015-12-29 2016-06-15 北京奇艺世纪科技有限公司 关系型数据库的调度方法及系统
CN107391529A (zh) * 2017-03-28 2017-11-24 阿里巴巴集团控股有限公司 一种实现对象关系映射orm的方法及装置
CN107577812A (zh) * 2017-09-29 2018-01-12 北京酷我科技有限公司 一种实体数据库的快速读取方法
CN107818146A (zh) * 2017-10-19 2018-03-20 上海斐讯数据通信技术有限公司 一种数据库架构方法和框架
CN108241626A (zh) * 2016-12-23 2018-07-03 北京国双科技有限公司 查询脚本的生成方法及装置
CN108595162A (zh) * 2018-03-20 2018-09-28 北京车音网科技有限公司 一种代码生成方法及装置
CN109062954A (zh) * 2018-06-23 2018-12-21 上海泽阳智能科技有限公司 一种高效的数据交换和数据源隔离系统
CN109522319A (zh) * 2018-11-12 2019-03-26 北京懿医云科技有限公司 基于dsl的数据映射方法及装置、电子设备、存储介质
CN109783555A (zh) * 2018-12-13 2019-05-21 东软集团股份有限公司 表单模板存储方法、装置、存储介质及电子设备
CN110019266A (zh) * 2017-10-30 2019-07-16 北京国双科技有限公司 一种sql语句的生成方法及装置
CN110321355A (zh) * 2019-07-12 2019-10-11 杭州美巴科技有限公司 一种自适应部分查询字段系统及执行方法
CN110489401A (zh) * 2019-08-26 2019-11-22 浪潮通用软件有限公司 一种数据库对象的部署方法及装置
CN112182305A (zh) * 2020-09-26 2021-01-05 广州鲁邦通物联网科技有限公司 一种基于xml规则的xml解析模块、解析方法和配置数据的管理方法
CN113641745A (zh) * 2021-08-18 2021-11-12 上海通联金融服务有限公司 跨语言平台操作数据库的方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106960048B (zh) * 2017-03-30 2021-10-01 深圳市来玩科技有限公司 一种基于Java的数据库与实体类自动映射方法
CN108052549A (zh) * 2017-11-27 2018-05-18 中山路得斯空调有限公司 一种将源数据自动转换为实体类代码的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003216854A8 (en) * 2002-03-22 2003-10-08 Isocra Ltd Database system comprising database access object with cache
US7296028B1 (en) * 2004-04-30 2007-11-13 Sap Ag System and method for mapping object-oriented program code to a database layer
CN102156717A (zh) * 2011-03-25 2011-08-17 中国有色矿业集团有限公司 一种将实体对象映射到数据库中的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101546259B (zh) * 2008-03-28 2012-10-03 国际商业机器公司 支持运行时模型扩展的对象关系映射系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003216854A8 (en) * 2002-03-22 2003-10-08 Isocra Ltd Database system comprising database access object with cache
US7296028B1 (en) * 2004-04-30 2007-11-13 Sap Ag System and method for mapping object-oriented program code to a database layer
CN102156717A (zh) * 2011-03-25 2011-08-17 中国有色矿业集团有限公司 一种将实体对象映射到数据库中的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
任俊威: "C#代码升级系统通用工具开发", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
尹善华: "对象模式与关系数据模式的映射研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226478A (zh) * 2013-05-22 2013-07-31 北京金和软件股份有限公司 一种自动生成并使用代码的方法
CN103226478B (zh) * 2013-05-22 2016-12-28 北京金和软件股份有限公司 一种自动生成并使用代码的方法
CN103744651A (zh) * 2013-12-20 2014-04-23 柳州职业技术学院 一种面向业务需求的业务处理模型自动生成方法
CN105447051A (zh) * 2014-09-22 2016-03-30 普天信息技术有限公司 一种数据库操作的方法和装置
CN104461495A (zh) * 2014-10-31 2015-03-25 北京思特奇信息技术股份有限公司 一种实现数据持久层分离的方法及系统
CN104461495B (zh) * 2014-10-31 2017-10-17 北京思特奇信息技术股份有限公司 一种实现数据持久层分离的方法及系统
CN104933577A (zh) * 2015-06-09 2015-09-23 广西家之宝网络科技有限公司 具有消息缓存功能的基于orm框架的电商系统
CN104933578A (zh) * 2015-06-09 2015-09-23 广西家之宝网络科技有限公司 基于orm框架电商平台
CN104933521A (zh) * 2015-06-09 2015-09-23 广西家之宝网络科技有限公司 基于orm框架的数据同步传递电商系统
CN104933576A (zh) * 2015-06-09 2015-09-23 广西家之宝网络科技有限公司 具有消息缓存功能的基于orm框架的电商平台
CN105550242A (zh) * 2015-12-08 2016-05-04 方正移动传媒技术(北京)有限公司 关系数据库数据处理方法及装置
CN105677751A (zh) * 2015-12-29 2016-06-15 北京奇艺世纪科技有限公司 关系型数据库的调度方法及系统
CN105677751B (zh) * 2015-12-29 2020-11-13 北京奇艺世纪科技有限公司 关系型数据库的调度方法及系统
CN108241626A (zh) * 2016-12-23 2018-07-03 北京国双科技有限公司 查询脚本的生成方法及装置
CN107391529B (zh) * 2017-03-28 2020-12-08 创新先进技术有限公司 一种实现对象关系映射orm的方法及装置
CN107391529A (zh) * 2017-03-28 2017-11-24 阿里巴巴集团控股有限公司 一种实现对象关系映射orm的方法及装置
CN107577812A (zh) * 2017-09-29 2018-01-12 北京酷我科技有限公司 一种实体数据库的快速读取方法
CN107818146A (zh) * 2017-10-19 2018-03-20 上海斐讯数据通信技术有限公司 一种数据库架构方法和框架
CN107818146B (zh) * 2017-10-19 2023-09-01 杭州吉吉知识产权运营有限公司 一种数据库架构方法和框架
CN110019266B (zh) * 2017-10-30 2021-06-29 北京国双科技有限公司 一种sql语句的生成方法及装置
CN110019266A (zh) * 2017-10-30 2019-07-16 北京国双科技有限公司 一种sql语句的生成方法及装置
CN108595162A (zh) * 2018-03-20 2018-09-28 北京车音网科技有限公司 一种代码生成方法及装置
CN108595162B (zh) * 2018-03-20 2022-04-05 北京车音网科技有限公司 一种代码生成方法及装置
CN109062954A (zh) * 2018-06-23 2018-12-21 上海泽阳智能科技有限公司 一种高效的数据交换和数据源隔离系统
CN109522319A (zh) * 2018-11-12 2019-03-26 北京懿医云科技有限公司 基于dsl的数据映射方法及装置、电子设备、存储介质
CN109783555A (zh) * 2018-12-13 2019-05-21 东软集团股份有限公司 表单模板存储方法、装置、存储介质及电子设备
CN109783555B (zh) * 2018-12-13 2021-07-30 东软集团股份有限公司 表单模板存储方法、装置、存储介质及电子设备
CN110321355A (zh) * 2019-07-12 2019-10-11 杭州美巴科技有限公司 一种自适应部分查询字段系统及执行方法
CN110489401A (zh) * 2019-08-26 2019-11-22 浪潮通用软件有限公司 一种数据库对象的部署方法及装置
CN110489401B (zh) * 2019-08-26 2022-12-27 浪潮通用软件有限公司 一种数据库对象的部署方法及装置
CN112182305A (zh) * 2020-09-26 2021-01-05 广州鲁邦通物联网科技有限公司 一种基于xml规则的xml解析模块、解析方法和配置数据的管理方法
CN113641745A (zh) * 2021-08-18 2021-11-12 上海通联金融服务有限公司 跨语言平台操作数据库的方法
CN113641745B (zh) * 2021-08-18 2024-01-26 上海通联金融服务有限公司 跨语言平台操作数据库的方法

Also Published As

Publication number Publication date
WO2012174767A1 (zh) 2012-12-27

Similar Documents

Publication Publication Date Title
CN102841889A (zh) 一种基于orm架构的高效数据库访问的实现方法及装置
CN107247808B (zh) 一种分布式NewSQL数据库系统及图片数据查询方法
US10878064B2 (en) Clinical data management system
US20110145210A1 (en) System and Method for Managing One or More Databases
EP3107050A1 (en) System for data aggregation and report generation
CN101477572B (zh) 基于tds过渡数据存储技术的动态数据仓库的方法与系统
CN109344223A (zh) 一种基于云计算技术的建筑信息模型管理系统及方法
US11023443B2 (en) Collaborative planning for accelerating analytic queries
CN103336813A (zh) 一种基于中间件架构的物联网数据集成管理方案
US8881127B2 (en) Systems and methods to automatically generate classes from API source code
CN103430144A (zh) 数据源分析
CN101901242A (zh) 联合的配置数据管理
CN109408493A (zh) 一种数据源的迁移方法及系统
CN109523423B (zh) 一种应用系统生成方法、装置、设备及存储介质
CN110955655B (zh) 动态cmdb数据库模型存储方法和系统
CN107291471A (zh) 一种支持可定制化数据采集的元模型框架系统
CN110209668A (zh) 基于流计算的维表关联方法、装置、设备及可读存储介质
Glava et al. Information Systems Reengineering Approach Based on the Model of Information Systems Domains
Liu et al. Research on middle platform construction and large data analysis of power enterprises based on Aliyun
CN113010499A (zh) 一种用于大数据治理平台数据库构建方法
Fernandes et al. Model-driven architecture approach for data warehouse
CN116737113B (zh) 面向海量科学数据的元数据目录管理系统及方法
Liu et al. Building a repository for workflow systems
Ren et al. Design on Data Manipulation Class Based on ADO. NET
Saddar et al. Evaluating Performance of Hibernate ORM Based Applications Using HQL Query Optimization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20121226