一种基于关系型数据库的异构系统数据级联操作自动构建方法与流程

文档序号:12719942阅读:151来源:国知局
一种基于关系型数据库的异构系统数据级联操作自动构建方法与流程

本发明涉及一种基于关系型数据库的异构系统数据级联操作自动构建方法。



背景技术:

自动构建是指通过提前定制好的模板,根据不同的业务元数据,自动生成出符合业务需求的产品,大大节省了企业产品的制造时间和人力成本,在许多应用领域都有着巨大的提高效能的作用,例如3D打印、汽车制造等等行业,在电子商务、互联网金融、企业信息化等软件系统开发中自动构建也是不可缺少的好帮手,程序员可以基于自动生成的源码文件进行业务逻辑的二次开发,这样就可以花更多的精力在业务逻辑和用户界面交互上,大大提高开发效率和用户体验。

目前软件系统开发中常见的自动构建是基于XML配置文件或关系型数据库来获取业务元数据。XML即可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。XML配置文件可读性高、跨平台强,但其缺点是只有简单的表结构关系,无法建立复杂关系表结构映射,然而关系型数据库却可提供较高的业务扩展性和复杂关系结构映射,有了业务元数据后,再通过模板来生成页面展示层、控制层、数据持久化层这三层MVC架构的业务相关代码,这样就可以通过界面上的用户交互来实现对业务数据实体的数据库查询存储操作,但是往往仅只能对单表的属性字段进行操作,无法实现关联表数据的级联操作,而且光生成三层架构无法对异构系统客户端提供数据服务,缺少跨平台性。

在现有技术中存在以下技术方案:

方案一:CN102629204A[1]。文献[1]通过面向用户界面的Java开发工具,接收设定的待维护表的属性标识信息,并根据所述属性标识信息在待查询数据库中查询获取所述待维护表的元数据生成Java对象,根据所要生成的网页源代码的编程语言及规范,生成模板文件,最后根据所述Java对象及所述模板文件生成网页源代码。该方案是一种展示层代码生成方法,通过连接数关系型数据库获取元数据,通过模板将元数据自动生成展示页面,以达到快速开发目的,但是只有展示层页面,没有持久化层无法直接连通数据库操作数据,要获取到数据还是得手动编写代码,具有一定的局限性。

一般而言,MVC三层架构:是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

方案二:CN101697120A[2]。文献[2]基于关系性数据库,通过设置目标代码模板,获取外部数据,经过逻辑运算,自动生成MVC三层架构,生成目标代码后,程序员把文件、文件夹以及整个java包复制下来粘贴到工程里,实现一个表的增删改查功能,而后做只需逻辑部分的修改完善,即可完成一个模块的开发。该方案可以根据关系型数据库生成mvc三层架构代码,以提高程序员开发速度,但是此方法不能级联操作关联表,只能对一个表进行数据操作,因为实际业务场景有很多关联表,遇到主从表关系还是得编代码,效率依旧不高。

方案三:CN103500087A[3]。文献[3]根据数据库设计文档或数据库表编写或生成hbm.xml文件,依据项目特点和freemarker模版语法编写模版,调用封装了代码生成的运算逻辑的maven插件,根据第一步骤所准备的hbm.xml文件和freemarker模版文件进行逻辑运算,生成MVC三层架构的目标代码。该方案可以根据关系型数据库映射出元数据的xml配置文件,再将宏套用在代码模板中生成MVC目标代码来提高开发速度,但是此方法需要手动映射元数据xml配置文件或用逆向工具映射,步骤有点冗余,没有直接连接数据库读取元数据方便,并且前后台没有用接口定义方式,无法为其他异构系统客户端提供数据服务。



技术实现要素:

本发明为了克服上述现有技术中的技术缺陷,提出一种针对异构系统客户端的数据级联操作接口的自动构建方法,本发明的目的是通过以下技术方案实现的。

一种基于关系型数据库的异构系统数据级联操作自动构建方法,所述方法包括以下步骤:

1)连接关系型数据库;

2)获取元数据;

3)通过代码生成器生成展示层、实体层、控制层、解析层、处理层、封装层、持久化层共七层结构源代码;

4)通过代码生成器生成实体与关联实体存储更新、实体与关联实体详情查询、实体与关联实体列表查询、实体删除、实体批量删除五大接口的文档。

其中,步骤1)包括:通过配置文件连接所述关系型数据库,并通过配置维护数据连接池,当需要请求数据库时,连接池返回给上层应用一个可用的数据库连接。

其中,步骤2)包括:通过数据库连接读取所述关系型数据库中表的主键、表名、表注解、字段名、字段类型、字段注解、外键作为元数据。

其中,步骤3)包括:将所述元数据组成对象值传入模板,并根据不同的表名生成对应的文件夹放入自动构建的源代码,通过代码生成器生成展示层、实体层、控制层、解析层、处理层、封装层、持久化层七层结构源代码。

其中,步骤4)包括:通过代码生成器对每种实体生成实体与关联实体存储更新、实体与关联实体详情查询、实体与关联实体列表查询、实体删除、实体批量删除五个接口报文格式的Word文档,各种异构系统的前台程序员调用接口对数据库进行操作;

其中,所述实体与关联实体存储更新包括:先将关联实体保存更新并生成主键,然后将本表实体保存更新并存入关联实体的主键当做外键;所述实体与关联实体详情查询包括:先根据条件查询本表记录详情,然后看接口中是否有需要查询关联实体的配置项,默认为不查询,如果需要查询,则根据本表的外键值,查询关联实体的记录;所述实体与关联实体列表查询包括:先根据条件查询本表列表记录,再看级联查询配置项,支持一层级关联表的数据查询;所述实体删除包括:根据本表主键,删除本表一条记录;所述实体批量删除包括:根据查询条件,批量删除本表记录。

其中,

所述展示层是用于用户与服务器交互的界面,其用于收到用户指令,并将指令通过接口Json报文方式传递给服务器,并将服务器的操作结果返回给用户;

所述实体层用于对关系型数据库表中字段的映射,提供set和get方法给Java对象赋值,当需要存数据库时,将值set到Java实体中,并通过持久化层保存到数据库,当需要查询数据库时,通过持久化层将数据库中值赋予Java实体,上层引用时就可以get到;

所述控制层用于客户端与服务器的交互,当客户端与服务器进行交互时,由所述控制层控制页面的跳转或指令的执行;

所述解析层用于通过Json报文解析成Java对象的模块,由此解析出报文指令,当是存储数据时解析出需要修改的字段,当是查询时解析出需要查询的条件字段;

所述处理层用于通过解析出报文指令,跳转不同的处理方法,处理层根据指令和级联数据操作配置项调用不同的持久层方法,并调用封装层代码将数据返回给前台;

所述封装层用于将Java对象转成Json报文的模块,根据不同的报文指令,封装成不同的报文。

所述持久化层作为与数据库连接的模块,用于给所述处理层提供对数据库增删改查的接口,所述处理层会调用这些接口做业务逻辑处理。

其中,所述接口Json报文方式可替换为Xml格式。

其中,将所述元数据组成对象值传入模板为Velocity模板。

其中,通过配置文件连接所述关系型数据库为Mysql关系型数据库。

本发明的基于关系型数据库的异构系统数据级联操作自动构建方法通过连接关系型数据库获取业务元数据,再通过代码生成器生成展示层、实体层、控制层、解析层、处理层、封装层、持久化层共七层结构源代码,并通过代码生成器生成实体与关联实体存储更新、实体与关联实体详情查询、实体与关联实体列表查询、实体删除、实体批量删除五大接口的文档,可以为各种客户端,例如ANDROID、IOS、.NET、PHP前端展示开发提供数据服务。由此,服务器可以通过报文接口方式为异构系统客户端提供数据服务,并可以通过接口中配置项方式提供关联表级联数据操作。本发明的优点在于:

1)与方案一相比:本发明自动生成七层架构,直连数据库,做到了数据透传的作用,大大提高开发效率,程序员可以将更多的精力的花在用户交互上,提高用户体验。

2)与方案二相比:本发明对关联表进行级联操作,很多实际应用场景中都有很多关联表,有了级联数据操作就不用请求服务器好多次才能完成就一次交互,直接请求一次就可以对本表和其关联表进行数据操作,大大降低了客户端和服务器的通信流量和时间,提高了通信效率。

3)与方案三相比:本发明提供了数据操作的常用接口和文档,不局限于一种客户端请求,所有异构系统的客户端都可以对服务器进行数据请求,提高了服务器的跨平台性。

4)与方案一、方案二、方案三相比:本发明在降低了软件开发周期的时间和人力成本的基础上,结合实际使用场景,提出针对异构系统客户端的数据级联操作接口的自动构建方法,进一步提高了开发效率、通信效率和服务器的跨平台性。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

附图1示出了根据本发明实施方式的自动构建流程图。

附图2示出了根据本发明实施方式的自动构建出代码的框架图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

一般而言,关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。关系型数据库以行和列的形式存储数据,便于用户理解。其中关系型数据库包括Mysql、Oracle、SyBase、Informix以及SQLServer。下面将对本发明一种基于关系型数据库的异构系统数据级联操作自动构建方法进行详细描述。

如图1及2所示,本发明公开一种基于关系型数据库的异构系统数据级联操作自动构建方法,首先连接数据库获取自动构建所需要的元数据,再将元数据传入事先定义好的模板中,通过文件流生成七层源代码和一个包含五个接口的word文档,将生成的代码编译部署到Tomcat中即可为异构系统的客户端提供数据操作服务和数据级联操作服务。

需要说明的是本发明实施例中涉及的异构系统指用不同的计算机语言搭建的系统。级联操作指的是当两个实体具有主从关系的时候,可以通过主实体对另一个实体进行操作。如图1所示,本发明实施例中连接数据库指通过配置文件连接Mysql关系型数据库,并通过C3P0配置维护数据连接池,当需要请求数据库时,连接池会返回给上层应用一个可用的数据库连接。

如图1所示,本发明实施例中获取元数据指通过数据库连接读取Mysql关系型数据库中表的主键、表名、表注解、字段名、字段类型、字段注解、外键等相关属性作为元数据。一般而言,元数据又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

如图1所示,本发明实施例中代码生成器指将元数据组成对象值传入Velocity模板,并根据不同的表名生成对应的文件夹放入自动构建的源代码。

如图2所示,通过代码生成器一共生成展示层、实体层、控制层、解析层、处理层、封装层、持久化层七层结构代码,称为七层源代码。其中,展示层是用户与服务器交互的界面,Tomcat应用对应的是JSP页面,此层主要是收到用户指令增加、修改、查询、删除或文件上传,例如在Ajax二级城市联动中将指令通过接口Json报文方式传递给服务器,并将服务器的操作结果返回给用户,当然该展示层中还设置用户界面的样式例如字体、图片、滚动效果等。

实体层是对关系型数据库表中字段的映射,并提供set和get方法给Java对象赋值,当需要存数据库时,将值set到Java实体中,并通过持久化层保存到数据库,当需要查询数据库时,通过持久化层将数据库中值赋予Java实体,上层引用时就可以get到。

控制层用于客户端与服务器交互,当用户前台与服务器进行交互时,需要跳转的页面或需要执行指令时都交给此层负责,常用跳转命令request、response等。

解析层通过Json报文解析成Java对象的模块,可以解析出报文指令,当是存储数据时解析出需要修改的字段,当是查询时解析出需要查询的条件字段。

处理层通过解析出报文指令,跳转不同的处理方法,处理层会根据指令和级联数据操作配置项调用不同的持久层方法,并调用封装层代码将数据返回给前台。

封装层将Java对象转成Json报文的模块,根据不同的报文指令,封装成不同的报文。

持久化层与数据库连接的模块,此层会给处理层提供对数据库增删改查的接口,处理层会调用这些接口做业务逻辑处理。一般而言,持久化指将传递数据存储到数据库中。

下面将对本发明实施例进一步详细描述。

如图2所示,通过代码生成器对每种实体生成实体与关联实体存储更新、实体与关联实体详情查询、实体与关联实体列表查询、实体删除、实体批量删除五个接口Json报文格式的Word文档,各种异构系统的前台程序员只需要调用接口即可对数据库进行操作。其中,实体与关联实体存储更新、实体与关联实体详情查询、实体与关联实体列表查询、实体删除、实体批量删除称为五大接口,其含义分别为:

1)实体与关联实体存储更新:先将关联实体保存更新并生成主键,然后将本表实体保存更新并存入关联实体的主键当做外键。

2)实体与关联实体详情查询:先根据条件查询本表记录详情,然后看接口中是否有需要查询关联实体的配置项,默认不查询,因为查询会消耗一定的资源,会影响交互时间,如果需要查询,则根据本表的外键值,去查询关联实体的记录。

3)实体与关联实体列表查询:先根据条件查询本表列表记录,再看级联查询配置项,支持一层级关联表的数据查询。

4)实体删除:根据本表主键,删除本表一条记录。

5)实体批量删除:根据查询条件,批量删除本表记录。

本发明所涉及的一种基于关系型数据库的异构系统数据级联操作自动构建方法,通过连接数据库获取需要自动构建业务元数据,将元数据转成七层架构代码和五大接口,实现用接口报文方式向异构系统客户端提供数据服务,同时,通过接口报文配置的方式对数据进行级联操作。

优选地,

1)连接数据库获取需要自动构建业务元数据是一种逆向工程,可以从客户端正向自动构建。

2)代码自动构建过程使用的Velocity模板,可以使用其他模板替代。

3)接口报文本发明使用的是Json格式,也可以换成Xml格式。

4)数据级联操作本发明是通过接口报文配置方式,也可以根据预先设置。

此外需要说明的是本发明公开的一种基于关系型数据库的异构系统数据级联操作自动构建方法可以为异构系统客户端提供数据服务,异构系统客户端可以为个人电脑的用户客户端,还可以为智能终端IOS、ANDROID,异构系统编译语言包括但不限于java语言,还可以使用.net或PHP。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1