基于关系型数据库的数据更新方法、装置、产品及介质与流程

文档序号:20949149发布日期:2020-06-02 20:02阅读:133来源:国知局
本发明涉及计算机网络和关系型数据库领域,具体涉及一种基于关系型数据库的数据更新方法、装置、产品及介质。
背景技术
::过去用户主要就是用浏览器访问,如今随着移动客户端越来越重要,显然不能使用这个浏览器访问结构,需要为移动客户端开发接口。restfulapi就可以通过一套统一的接口为所有客户端提供web服务,实现前后端分离。在应用系统管理中,许多的接口都需要开发restful,每当增加表结构就需要开发代码,修改表结构的时候就需要相应去修改代码,以实现业务需求,而对于关系型表结构来说,在某种程度中是增加了代码的重复性,而频繁修改代码也增加了复杂性。技术实现要素:本发明主要解决的技术问题是在表结构信息发生变化时,如何减少修改代码的工作,减少代码的重复性。根据第一方面,一种实施例中提供一种基于关系型数据库的数据更新方法,包括:监测表结构是否发生变化,其中,所述表是关系型数据库中的表;根据表结构发生的变化,接收对应的接口请求;根据所述接口请求匹配对应的配置接口,确定匹配到的配置接口,其中,所述配置接口是预先生成关系型数据库中各个表对应的restfulapi接口;根据所述匹配到的配置接口查询对应的配置信息,其中,所述配置信息是发生表结构变化的表所对应的配置信息;将查询到的配置信息注入到关联表的结构中,以更新所述关联表中的数据,其中,所述关联表是所述发生表结构变化的表所关联的表。在其中一种可能实现方式中,所述根据所述接口请求匹配对应的配置接口包括:根据所述接口请求匹配标准配置接口;在匹配到标准配置接口时,确定匹配到的配置接口为该标准配置接口;在没有匹配到标准配置接口时,进行自定义配置接口匹配;在匹配到自定义配置接口时,确定匹配到的配置接口为该自定义配置接口。在其中一种可能实现方式中,所述标准配置接口包括单个表对应的新增配置接口、修改配置接口、删除配置接口或查询配置接口。在其中一种可能实现方式中,所述自定义配置接口包括根据单个表对应的业务信息所配置的接口。在其中一种可能实现方式中,所述根据所述匹配到的配置接口查询对应的配置信息包括:在所述匹配到的配置接口为标准配置接口时,所述配置信息为所述表结构变化的表所对应的参数信息。在其中一种可能实现方式中,所述根据所述匹配到的配置接口查询对应的配置信息包括:在所述匹配到的配置接口为自定义配置接口时,所述配置信息为根据单个表对应的业务信息所配置的sql语句信息。在其中一种可能实现方式中,所述基于关系型数据库的数据更新方法还包括:在更新完成后,返回结果信息。根据第二方面,一种实施例中提供一种基于关系型数据库的数据更新装置,包括:监测模块,用于监测表结构是否发生变化,其中,所述表是关系型数据库中的表;请求接收模块,用于根据表结构发生的变化,接收对应的接口请求;确定模块,用于根据所述接口请求匹配对应的配置接口,确定匹配到的配置接口,其中,所述配置接口是预先生成关系型数据库中各个表对应的restfulapi接口;查询模块,用于根据所述匹配到的配置接口查询对应的配置信息,其中,所述配置信息是发生表结构变化的表所对应的配置信息;更新模块,用于将查询到的配置信息注入到关联的表中,以更新所述关联表中的数据,其中,所述关联的表是所述发生表结构变化的表所关联的表。根据第三方面,一种实施例中提供一种产品,包括:存储器,用于存储程序;处理器,用于通过执行所述存储器存储的程序以实现如上所述基于关系型数据库的数据更新方法。根据第四方面,一种实施例中提供一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如上所述基于关系型数据库的数据更新方法。实施本发明实施例具有如下有益效果:依据上述实施例的基于关系型数据库的数据更新方法,监测表结构是否发生变化,其中,所述表是关系型数据库中的表,根据表结构发生的变化,接收对应的接口请求,根据所述接口请求匹配对应的配置接口,确定匹配到的配置接口,根据所述匹配到的配置接口查询对应的配置信息,其中,所述配置信息是发生表结构变化的表所对应的配置信息,将查询到的配置信息注入到关联表的结构中,以更新所述关联表中的数据,其中,所述关联表是所述发生表结构变化的表所关联的表。由于在表结果发生变化时,会由对应的接口进行配置变更,并将接口所需依赖的配置信息注入到对应的关联表结构中,使得当监测到表结构信息变化时,相对应地更新关联的表发生变化,无需修改代码结构,减少代码的重复。附图说明图1为本发明实施例提供一种基于关系型数据库的数据更新方法流程图;图2为本发明实施例提供一种预先生成接口方法流程图;图3为本发明实施例提供另一种基于关系型数据库的数据更新方法流程图;图4为本发明实施例提供一种配置接口方法流程图;图5为本发明实施例提供另一种基于关系型数据库的数据更新装置结构图。具体实施方式下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。在本发明实施例中,发明人发现在关系型数据库中,在某一表结构发生变化的时候,其关联表的结构也会相应的发生变化,但是都需要开发代码或修改代码去实现业务需求,而有些表结构的增、删、改、查接口代码都具有共同性,为了减少代码的重复性以及频繁修改代码带来的复杂性,发明人通过抽取通用的接口服务,采用依赖注入的思想,通过自动发现数据库的变化来维护系统内的restful的接口,系统自动的完成接口的配置,不需要修改任何的源代码即可以满足接口的变更,调用接口时动态的将接口依赖的条件注入到需要运行的sql语句中,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处、由谁实现,将运行时的代码解耦。实施例一参见图1,本发明实施例提供一种基于关系型数据库的数据更新方法,所述方法可以应用于应用系统架构中,包括步骤s00至步骤s90,下面具体说明。在本发明实施例中,应用系统架构是指系统架构,比如爱奇艺网站架构、爱奇艺各种系统架构,应用系统是指被用户使用的系统。步骤s00:预先生成关系型数据库中各个表对应的restfulapi接口。在本发明实施例中,通过维护数据库的表信息,每增加表信息的时候更新表信息的维护,步骤s00包括步骤s001至步骤s004,参考图2,下面具体说明。步骤s001:制定规则库。维护关系型数据库中哪些表可以生产api接口,哪些是单表操作,哪些是多表联合操作,约束这些表名的命名规范,restful的接口规范命名,示例性地,所有的表结构信息使用“t_cfg_表名”的形式,其中表名作为接口的参数,用于查询接口的配置信息。具体地,数据库中实际的表名为t_cfg_user,则所有其对应的接口信息形式可以为getuser(),insertuser(),updateuser(),deleteuser()等模板形式。步骤s002:通过可视化方式维护表对应的接口信息。选择需要配置的表则自动生成表与接口的信息,比如选择用户表t_cfg_user配置增删改查所有的通用接口信息,后续有表结构变化,新增、删除表则都可以自动的生成这样的配置信息。即对应于每个表结构的表化均有其对应的接口,例如对表a,其对应有接口有getuser(),insertuser(),updateuser(),deleteuser()等模板,以在后续表a要删除表结构信息时,其可以调用对应的接口deleteuser(),在表a要获取表结构信息时,其可以调用对应的接口getuser()。则通用的标准配置接口模版包括单个表对应的新增配置接口、修改配置接口、删除配置接口或查询配置接口。为了满足复杂的sql语句,通用的标准配置接口模板满足不了通用的增删改查等操作,尤其涉及到复杂的sql统计运算操作时,则需要手动对非通用接口与sql语句以及存储过程的绑定,其对应的接口即为自定义配置接口。预先将配置对应的自定义配置接口,以及其相对应的sql语句。步骤s003:编写预置的接口。比如单表的新增、修改、删除、查询,以及通用的sql和存储过程的调用。比如查询用户表的所有数据,通用的接口为“/get{tablename}”,当输入user的时候,则将t_cfg_user表配置的信息查询出来,组成需要的查询条件注入到sql中,运行时返回用户表的信息。即一个表的增删改查对应不同的接口模板,包括标准配置接口模板和自定义接口配置模版,比如表a的新增数据接口模版为b,添加数据只需要按照表a的结构调用b即可,表c调用接口模版为d,则只需要按照表c的结构调用d即可。步骤s004:编写controller层、service层、dao层、mapper的相应代码。controller按照http的标准协议,通过restful的接口方式,支持mybatis的mapper的xml配置文件中初始化了几张默认的模板,包括单表数据的按主键查询接口、按字段查询接口、返回所有结果查询接口、新增数据接口、修改数据接口、删除数据接口。同时支持复杂sql输入、存储过程调用的接口。service层根据运行时来控制运行的是模型sql还是自定义sql,如果是模型sql,则根据入参信息,运行时注入到sql模板中执行,如果是自定义的sql,直接将所有的sql语句注入执行。dao层作为接口信息与mybatis中定义的mapper匹配。controller层主要对外提供标准统一的restful接口,比如查询接口getuser(),其中user作为配置信息,用于service层从数据库中查询配置信息的主键,从user的配置信息中获取到查询接口配置的信息。需要说明的是,在关系型数据库的sql语句编写过程中,尤其需要注重安全问题,比如sql注入,递归操作等问题,需要通过规则配置对于编写的sql语句或者存储过程进行关键词检查。步骤s10:监测表结构是否发生变化,其中,所述表是关系型数据库中的表。在本发明实施例中,参考图3,示例性地,在接收到用户对应用系统的操作时,例如,通过应用系统的web端修改了某一数据a,该数据a存储在表b与表c中的,在表b中的数据a被修改了,则监测到表b的数据结构发生变化,之后就进行步骤s30。在本发明实施例中,客户端需要的请求restful接口信息都通过web的形式展示出来,包括api接口是开放还是私有,api支持http协议和https协议,api的认证方式,支持token和用户名密码的方式,api的匹配方式包括前置方式,全词匹配方式,以及是否支持跨域,前端的参数的位置包括path,query,header方式,类型支持数字和字符串,以及是否必填,http请求方式method,包括get,p0st,delete,put等信息,选择调用的接口则按照接口文档调用即可。应用系统采用分层的设计思想,首先是controller层,controller层对外提供restful接口方式,比如查询接口名,接口参数,是对外提供的接口信息;service层通过接口名从配置信息中查找到相应的数据库表名、入参信息、入参类型等信息,将这些信息组装成dao层所需要的接口信息,封装为dao以及mapper的xml中所需要的参数。dao层接口,主要匹配mybatis的xml文件定义的mapper映射文件,入参都定义为jsonobject,查询接口返回arraylist<hashmap<object,0bject>>类型。步骤s30:根据表结构发生的变化,接收对应的接口请求。在本发明实施例中,在应用系统接收到表结构发生变化时,其就会接收到一个接口请求,例如,在表b结构是发生查询数据时,则接收到对应的查询数据的接口请求,在表b结构是发生增加数据时,则接收到对应的增加数据的接口请求,在表b结构是发生删除数据时,则接收到对应的删除数据的接口请求,相应地,在表b结构是发生修改数据时,则接收到对应的修改数据的接口请求。在表b结构发生是发生复杂的sql统计运算操作时,则接收到应该改操作的接口请求。在表b结构同时发生了修改数据、增加数据及查询数据的变化时,则同时接收到对应的删除数据的接口请求、增加数据的接口请求及查询数据的接口请求。需要说明的是,在步骤s30中,在应用系统监测到表结构发生变化,会根据监测到的变化信息即后续关联表的表结构要进行更新的配置信息,进行对应的接口请求,以根据请求到的接口匹配到对应上述的配置信息。步骤s50:根据所述接口请求匹配对应的配置接口,确定匹配到的配置接口;在本发明实施例中,所述配置接口是步骤s00预先生成关系型数据库中各个表对应的restfulapi接口。在其中一种可能实现方式中,步骤s50所述根据所述接口请求匹配对应的配置接口,确定匹配到的配置接口包括步骤s501至步骤s504,参考图4,下面具体说明。步骤s501:根据所述接口请求匹配标准配置接口。在其中一种可能实现方式中,所述标准配置接口包括单个表对应的新增配置接口、修改配置接口、删除配置接口或查询配置接口。步骤s502:在匹配到标准配置接口时,确定匹配到的配置接口为该标准配置接口。步骤s503:在没有匹配到标准配置接口时,进行自定义配置接口匹配。在其中一种可能实现方式中,所述自定义配置接口包括根据单个表对应的业务信息所配置的接口。步骤s504:在匹配到自定义配置接口时,确定匹配到的配置接口为该自定义配置接口。在本发明实施例中,通过网关匹配的接口可以是标准配置接口与自定义配置接口。步骤s70:根据所述匹配到的配置接口查询对应的配置信息,其中,所述配置信息是发生表结构变化的表所对应的配置信息;在其中一种可能实现方式中,所述根据所述匹配到的配置接口查询对应的配置信息包括:在所述匹配到的配置接口为标准配置接口时,所述配置信息为所述表结构变化的表所对应的参数信息。在其中一种可能实现方式中,所述根据所述匹配到的配置接口查询对应的配置信息包括:在所述匹配到的配置接口为自定义配置接口时,所述配置信息为根据单个表对应的业务信息所配置的sql语句信息。在本发明实施例中,在本发明实施例中,通过网关匹配请求的接口是通用标准配置接口,则通过标准配置接口的解析协议,比如根据主键查询数据,接口形式为“/{tablename}/{key}”,当调用”/getuser/001”时,则为通用接口,如果匹配不到通用的接口,则匹配自定义的接口,如果匹配不到,流程结束,返回相关的错误信息。如果匹配到自定义接口,匹配到的接口信息则查询数据库中维护的配置信息,使用这些信息用于组装mapper映射文件中的参数。同时此步骤支持定时和手动的触发数据库表结构的变更处理,通过解析表结构和原来配置信息中的数据做比较,如果有结构发生变化,则更新api接口表的配置信息。配置信息如下:表1参见表1,接口“getuser”与接口“inseruser”是通用的标准配置接口,则调用其接口时,相应的配置信息就是其各自对应的入参和返回字典。即在调用接口“getuser”时,其对应的配置信息为入参user_id和返回字典user_id,user_name,age。在调用接口“user_id”,其对应的配置信息为入参user_id,user_name,...和返回字典user_id,user_name,...在调用接口“getuser2”时,其对应的配置信息为对应的sql语句。步骤s90:将查询到的配置信息注入到关联表的结构中,以更新所述关联表中的数据,其中,所述关联表是所述发生表结构变化的表所关联的表。在本发明实施例中,接口的参数信息则通过da0与mapper的映射传入模板,进入参数注入。系统内置的模板信息,包括基本的新增、修改、删除、查询。其中新增的模板表字段都是动态传入,比如insertint0${table_name}[column_list]values(values_list);使用mybatis的xml配置文件如下:其中${talbename}表名为传入的参数,${key}为主键,columns是所有的列名组合,values是每个列名对应的值,这些值通过for循环的方式进入注入,所以要求columns和values的顺序需要保持一致。按照这样的方式分别定义了按参数修改、按参数删除、按参数查询,扩展了按照主键查询、按主键删除、按主键修改等定义通用模板。在其中一种可能实现方式中,所述基于关系型数据库的数据更新方法还包括:在更新完成后,返回结果信息。在本发明实施例中,在所有的的配置信息进行注入和验证后执行mybatis的jdbc查询操作。执行成功则返回查询的结果,执行失败则返回响应的错误码。相应操作结束。在本发明实施例中,监测表结构是否发生变化,其中,所述表是关系型数据库中的表,根据表结构发生的变化,接收对应的接口请求,根据所述接口请求匹配对应的配置接口,确定匹配到的配置接口,根据所述匹配到的配置接口查询对应的配置信息,其中,所述配置信息是发生表结构变化的表所对应的配置信息,将查询到的配置信息注入到关联表的结构中,以更新所述关联表中的数据,其中,所述关联表是所述发生表结构变化的表所关联的表。由于在表结果发生变化时,会由对应的接口进行配置变更,并将接口所需依赖的配置信息注入到对应的关联表结构中,使得当监测到表结构信息变化时,相对应地更新关联的表发生变化,无需修改代码结构,减少代码的重复。实施例二请参考图5,本发明实施例的一种基于关系型数据库的数据更新装置,包括:监测模块51,用于监测表结构是否发生变化,其中,所述表是关系型数据库中的表;请求接收模块52,用于根据表结构发生的变化,接收对应的接口请求;确定模块53,用于根据所述接口请求匹配对应的配置接口,确定匹配到的配置接口;查询模块54,用于根据所述匹配到的配置接口查询对应的配置信息,其中,所述配置信息是发生表结构变化的表所对应的配置信息;更新模块55,用于将查询到的配置信息注入到关联的表中,以更新所述关联表中的数据,其中,所述关联的表是所述发生表结构变化的表所关联的表。在本发明实施例中,监测表结构是否发生变化,其中,所述表是关系型数据库中的表,根据表结构发生的变化,接收对应的接口请求,根据所述接口请求匹配对应的配置接口,确定匹配到的配置接口,根据所述匹配到的配置接口查询对应的配置信息,其中,所述配置信息是发生表结构变化的表所对应的配置信息,将查询到的配置信息注入到关联表的结构中,以更新所述关联表中的数据,其中,所述关联表是所述发生表结构变化的表所关联的表。由于在表结果发生变化时,会由对应的接口进行配置变更,并将接口所需依赖的配置信息注入到对应的关联表结构中,使得当监测到表结构信息变化时,相对应地更新关联的表发生变化,无需修改代码结构,减少代码的重复。本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属
技术领域
:的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1