CN117724741A - Mapper配置文件的更新方法、装置和存储介质 - Google Patents
Mapper配置文件的更新方法、装置和存储介质 Download PDFInfo
- Publication number
- CN117724741A CN117724741A CN202311737692.3A CN202311737692A CN117724741A CN 117724741 A CN117724741 A CN 117724741A CN 202311737692 A CN202311737692 A CN 202311737692A CN 117724741 A CN117724741 A CN 117724741A
- Authority
- CN
- China
- Prior art keywords
- data table
- mybatis
- information
- reverse engineering
- updated
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000003860 storage Methods 0.000 title claims abstract description 34
- 230000002441 reversible effect Effects 0.000 claims abstract description 220
- 238000011161 development Methods 0.000 claims abstract description 35
- 230000006870 function Effects 0.000 claims description 86
- 238000004891 communication Methods 0.000 claims description 18
- 238000012512 characterization method Methods 0.000 claims description 8
- 238000012827 research and development Methods 0.000 abstract description 5
- 230000005540 biological transmission Effects 0.000 description 16
- 230000002085 persistent effect Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 238000004590 computer program Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 10
- 230000007547 defect Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000002688 persistence Effects 0.000 description 4
- 238000010367 cloning Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000004801 process automation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种Mapper配置文件的更新方法、装置和存储介质,该方法包括:采用MySQL触发器调用UDF自定义函数;控制MyBatis逆向工程引擎接收更新数据表元信息,并控制MyBatis逆向工程引擎根据更新数据表元信息,生成更新Mapper配置文件;控制MyBatis逆向工程引擎将更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为更新Mapper配置文件。该方法将MySQL触发器和UDF插件结合到MyBatis逆向工程中,实现了MyBatis逆向工程流程的自动化,极大的提升了研发效率。
Description
技术领域
本申请涉及Mapper配置文件的更新领域,具体而言,涉及一种Mapper配置文件的更新方法、Mapper配置文件的更新装置、计算机可读存储介质和电子设备。
背景技术
在以JAVA为基础的后端软件开发中,经常会用到MyBatis框架操作MySQL,执行数据的增删改查,MyBatis会在Mapper配置文件中维护数据库的表结构和常用的SQL语句以供开发者调用,Mapper配置文件是后端开发者在操作数据库时最常使用的关键信息。
MyBatis给开发者提供了相当的便利,但也有一定维护成本。当数据库的表结构发生改变时,开发者需要重新生成Mapper配置文件,以对应新的数据库表结构。当下流行的方案是使用MyBatis逆向工程根据新的表结构生成新的Mapper配置文件。MyBatis逆向工程具体的使用步骤如下:
1、打开MyBatis逆向工程系统;
2、配置好数据库链接,用户名和密码;
3、配置需要重新生成的数据表元信息;
4、运行MyBatis逆向工程生成Mapper配置文件;
5、将新生成的Mapper配置文件拷贝到项目应用中替换原Mapper配置文件。
每次数据库的表结构发生变更时,开发者都要执行以上5个步骤来更新Mapper配置文件。以上流程的缺点有两个,一是步骤繁琐,在开发初期频繁修改表结构的阶段,以上步骤需要反复执行,影响开发效率;二是手动执行的生成文件和复制替换文件操作容易产生人为操作失误,为项目引入bug,特别是当多个开发者同时使用MyBatis逆向工程更新Mapper配置文件时,该问题会更突出,为项目带来更多隐患,从而影响项目进度和质量。
发明内容
本申请的主要目的在于提供一种Mapper配置文件的更新方法、Mapper配置文件的更新装置、计算机可读存储介质和电子设备,以至少解决现有技术中采用MyBatis逆向工程更新Mapper配置文件的方法开发者执行步骤较多资源消耗较大、容易出现错误且项目质量较低的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种Mapper配置文件的更新方法,包括:采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,上述更新数据表元信息为更新后的表征数据表的结构与属性的信息;控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件;控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将上述项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为上述更新Mapper配置文件。
可选地,在采用MySQL触发器调用UDF自定义函数之前,所述方法还包括:在所述MySQL触发器中安装MySQL-UDF-http插件,所述MySQL-UDF-http插件使得所述MySQL触发器能够调用通信协议接口,所述通信协议接口用于将所述更新数据表元信息发送至所述MyBatis逆向工程引擎;执行表结构更新语句,得到所述更新数据表元信息,并触发所述MySQL触发器,所述表结构更新语句用于对数据表结构进行更新。
可选地,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,包括:获取UDF插件提供的http函数,并将所述UDF插件提供的所述http函数确定为所述UDF自定义函数;采用所述MySQL触发器调用所述UDF自定义函数,以将所述更新数据表元信息作为参数通过http接口发送至所述MyBatis逆向工程引擎中,所述http接口为根据所述http函数确定的。
可选地,控制所述MyBatis逆向工程引擎接收所述更新数据表元信息,并控制所述MyBatis逆向工程引擎根据所述更新数据表元信息,生成更新Mapper配置文件,包括:通过所述MyBatis逆向工程引擎的前置处理器接收所述更新数据表元信息;控制所述MyBatis逆向工程引擎的核心处理器从所述前置处理器的消息队列中获取所述更新数据表元信息,并控制所述核心处理器根据所述更新数据表元信息,生成所述更新Mapper配置文件。
可选地,通过所述MyBatis逆向工程引擎的前置处理器接收所述更新数据表元信息,包括:在所述MyBatis逆向工程引擎中创建一个基于Spring+RocketMQ消息队列的web应用;编写RocketMQ消息生产者,并通过web接口接收采用MySQL触发器发送的所述更新数据表元信息,所述web接口为根据所述web应用确定的,所述MyBatis逆向工程引擎的前置处理器包括所述web应用和所述RocketMQ消息生产者;将接收到的所述更新数据表元信息存放至RocketMQ消息队列中,以接收所述更新数据表元信息。
可选地,所述更新数据表元信息有多个,控制所述核心处理器根据所述更新数据表元信息,生成所述更新Mapper配置文件,包括:控制所述核心处理器编写RocketMQ消息消费者,并按照各所述更新数据表元信息存放在所述RocketMQ消息队列中的顺序依次获取各所述更新数据表元信息;控制所述核心处理器将各所述更新数据表元信息均作为参数调用MyBatis逆向工程系统,以生成与各所述更新数据表元信息对应的多个所述更新Mapper配置文件。
可选地,所述更新Mapper配置文件有多个,控制所述MyBatis逆向工程引擎将所述更新Mapper配置文件存储至Git仓库中的项目公共分支上,包括:编写所述Git仓库的推送脚本,得到所述Git仓库;控制所述MyBatis逆向工程引擎的后置处理器依次读取所述更新Mapper配置文件,并将读取到的各所述更新Mapper配置文件存储至所述Git仓库中的项目公共分支上。
根据本申请的另一方面,提供了一种Mapper配置文件的更新装置,包括:调用单元,用于采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,所述更新数据表元信息为更新后的表征数据表的结构与属性的信息;控制单元,用于控制所述MyBatis逆向工程引擎接收所述更新数据表元信息,并控制所述MyBatis逆向工程引擎根据所述更新数据表元信息,生成更新Mapper配置文件;存储单元,用于控制所述MyBatis逆向工程引擎将所述更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将所述项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为所述更新Mapper配置文件。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行任意一种所述的Mapper配置文件的更新方法。
根据本申请的另一方面,提供了一种电子设备,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的Mapper配置文件的更新方法。
应用本申请的技术方案,上述Mapper配置文件的更新方法,首先采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,更新数据表元信息为更新后的表征数据表的结构与属性的信息;然后控制MyBatis逆向工程引擎接收更新数据表元信息,并控制MyBatis逆向工程引擎根据更新数据表元信息,生成更新Mapper配置文件;最后控制MyBatis逆向工程引擎将更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为更新Mapper配置文件。该方法将MySQL触发器和UDF插件结合到MyBatis逆向工程中,以触发器为事件驱动,UDF插件为信息传输通道,再结合Git仓库落存生成结果,实现了MyBatis逆向工程流程的自动化。当表结构发生变更后,开发者只需一个步骤,即将Git远程公共分支合并到个人分支上,便可完成Mapper配置文件的更新,相比于原来的五个步骤,极大的提升了研发效率,也避免了开发者由于并行更新Mapper配置文件而可能导致的项目缺陷和混乱,解决了现有技术中采用MyBatis逆向工程更新Mapper配置文件的方法开发者执行步骤较多资源消耗较大、容易出现错误且项目质量较低的问题。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请的实施例中提供的一种执行Mapper配置文件的更新方法的移动终端的硬件结构框图;
图2示出了根据本申请的实施例提供的一种Mapper配置文件的更新方法的流程示意图;
图3示出了根据本申请的实施例提供的另一种Mapper配置文件的更新方法的流程示意图;
图4示出了根据本申请的实施例提供的一种Mapper配置文件的更新装置的结构框图。
其中,上述附图包括以下附图标记:
102、处理器;104、存储器;106、传输设备;108、输入输出设备。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
MySQL:是当前应用最为广泛的开源关系型数据库。
用户自定义函数:user-defined-functions,简称UDF,是mysql提供的用于扩展mysql自带函数库的插件,用户可使用UDF技术自定义任何新函数,用以满足各种各样的业务需求。
MyBatis:是一个优秀的持久层框架,它对Jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等Jdbc繁杂的过程代码。
Git:是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
正如背景技术中所介绍的,现有技术中每次数据库的表结构发生变更时,开发者都要执行至少5个步骤来更新Mapper配置文件。以上现有技术中的更新流程的缺点有两个,一是步骤繁琐,在开发初期频繁修改表结构的阶段,以上步骤需要反复执行,影响开发效率;二是手动执行的生成文件和复制替换文件操作容易产生人为操作失误,为项目引入bug,特别是当多个开发者同时使用MyBatis逆向工程更新Mapper配置文件时,该问题会更突出,为项目带来更多隐患,从而影响项目进度和质量。
为解决现有技术中采用MyBatis逆向工程更新Mapper配置文件的方法开发者执行步骤较多资源消耗较大、容易出现错误且项目质量较低的问题,本申请的实施例提供了一种Mapper配置文件的更新方法、Mapper配置文件的更新装置、计算机可读存储介质和电子设备。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种Mapper配置文件的更新方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中Mapper配置文件的更新方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于移动终端、计算机终端或者类似的运算装置的Mapper配置文件的更新方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本申请实施例的Mapper配置文件的更新方法的流程图。如图2所示,该方法包括以下步骤:
在执行步骤S201之前,上述方法还包括如下步骤:在上述MySQL触发器中安装MySQL-UDF-http插件,上述MySQL-UDF-http插件使得上述MySQL触发器能够调用通信协议接口,上述通信协议接口用于将上述更新数据表元信息发送至上述MyBatis逆向工程引擎;执行表结构更新语句,得到上述更新数据表元信息,并触发上述MySQL触发器,上述表结构更新语句用于对数据表结构进行更新。
具体的,MySQL-UDF-http插件提供了MySQL调用http协议接口的能力,用于将变更的数据表元信息(即更新数据表元信息)推送到后向处理系统(即MyBatis逆向工程引擎)。
其中,在执行该实施例之前,需要启动一个MySQL数据库实例和若干数据表,并准备一个使用了Mybatis框架的web应用,推送到Git仓库,项目Git分支名称为“Mybatis分支A”(即项目公共分支)。
其中,MySQL-UDF-http插件是一个用于MySQL数据库的用户定义函数(UDF),它允许数据库用户通过http协议与外部网络资源进行交互。该插件可以让用户在SQL语句中调用http请求,从而实现与外部API的集成和数据交换。
使用MySQL-UDF-http插件,用户可以通过SQL语句发送http请求,获取外部资源的数据,并将其存储到数据库中。这样可以实现从外部系统获取数据并将其与数据库中的数据进行整合和分析的功能。
该插件可以用于访问RESTful API、Web服务、外部数据库等各种网络资源,并将这些数据导入到MySQL数据库中。这为数据库用户提供了更灵活的数据获取和处理方式,同时也扩展了数据库的功能和应用场景。
需要注意的是,使用MySQL-UDF-http插件需要在MySQL服务器上安装和配置该插件,同时也需要确保对外部网络资源的访问权限和安全性。在使用该插件时,需要谨慎处理外部数据的导入和处理,以防止数据安全和隐私泄露的问题。
步骤S201,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,上述更新数据表元信息为更新后的表征数据表的结构与属性的信息;
具体的,MyBatis逆向工程引擎是一个用于生成MyBatis持久层代码的工具。它可以根据数据库表结构自动生成对应的实体类、Mapper接口和XML映射文件,简化了开发人员编写持久层代码的工作量。MyBatis逆向工程引擎通常包含在MyBatis框架的工具集中,开发人员可以通过配置文件指定需要生成代码的数据库表,然后运行逆向工程引擎即可自动生成对应的持久层代码。使用MyBatis逆向工程引擎可以提高开发效率,同时保证了持久层代码与数据库表结构的一致性。这使得开发人员可以更专注于业务逻辑的实现,而不必花费大量时间去编写重复的持久层代码。
其中,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,包括如下步骤:
步骤S2011,获取UDF插件提供的http函数,并将上述UDF插件提供的上述http函数确定为上述UDF自定义函数;
步骤S2012,采用上述MySQL触发器调用上述UDF自定义函数,以将上述更新数据表元信息作为参数通过http接口发送至上述MyBatis逆向工程引擎中,上述http接口为根据上述http函数确定的。
具体的,这样可以将MySQL触发器和UDF插件结合到MyBatis逆向工程中,以触发器为事件驱动,UDF插件为信息传输通道,直接自动将更新数据表元信息发送至MyBatis逆向工程引擎,避免了开发人员手动发送更新数据表元信息。
其中,UDF(User Defined Function)是一种用户自定义的函数,可以在数据库管理系统中使用。UDF可以由用户根据自己的需求自定义,以便在查询和数据处理中使用。UDF可以用于执行特定的计算、转换或逻辑操作,以便更好地满足用户的需求。UDF在不同的数据库管理系统中可能有不同的实现方式和语法,但通常都可以通过特定的语法和关键字来创建和使用自定义函数。UDF可以在查询语句中像内置函数一样使用,以实现更复杂的数据处理和分析操作。通过使用UDF,用户可以根据自己的需求扩展数据库管理系统的功能,实现更灵活和定制化的数据处理和分析。UDF的使用可以大大提高数据库管理系统的灵活性和可扩展性,使用户能够更好地应对不同的数据处理需求。
步骤S202,控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件;
具体的,Mapper配置文件是用于定义数据库操作的映射关系的配置文件,通常用于将数据库表的字段映射到Java对象的属性上,以便于在程序中进行数据库操作。在Java开发中,通常使用MyBatis或Hibernate等持久层框架来进行数据库操作,而Mapper配置文件就是这些框架中用于定义数据库操作的映射关系的配置文件。
在Mapper配置文件中,通常包括以下内容:数据库表的映射关系,即数据库表的字段与Java对象的属性的对应关系;SQL语句的定义,包括select、insert、update、delete等操作的SQL语句;SQL语句参数的定义,包括参数的类型、名称等信息;结果映射的定义,包括将查询结果映射到Java对象的属性上的规则。通过Mapper配置文件,可以将数据库操作与Java对象的属性关联起来,使得在程序中可以方便地进行数据库操作,而不需要直接编写SQL语句。这样可以提高开发效率,并且使得程序更易于维护和扩展。
其中,控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件,包括如下步骤:
步骤S301,通过上述MyBatis逆向工程引擎的前置处理器接收上述更新数据表元信息;
其中,通过上述MyBatis逆向工程引擎的前置处理器接收上述更新数据表元信息,包括如下步骤:
步骤S3011,在上述MyBatis逆向工程引擎中创建一个基于Spring+RocketMQ消息队列的web应用;
步骤S3012,编写RocketMQ消息生产者,并通过web接口接收采用MySQL触发器发送的上述更新数据表元信息,上述web接口为根据上述web应用确定的,上述MyBatis逆向工程引擎的前置处理器包括上述web应用和上述RocketMQ消息生产者;
步骤S3013,将接收到的上述更新数据表元信息存放至RocketMQ消息队列中,以接收上述更新数据表元信息。
具体的,这样可以保证更新数据表元数据被MyBatis逆向工程引擎的核心处理器顺利执行。
步骤S302,控制上述MyBatis逆向工程引擎的核心处理器从上述前置处理器的消息队列中获取上述更新数据表元信息,并控制上述核心处理器根据上述更新数据表元信息,生成上述更新Mapper配置文件。
具体的,这样可以在开发者没有任何感知和操作的情况下,更新Mapper配置文件自动在MyBatis逆向工程引擎上生成,可以供开发者直接使用,免去了手动创建的过程。
其中,上述更新数据表元信息有多个,控制上述核心处理器根据上述更新数据表元信息,生成上述更新Mapper配置文件,包括如下步骤:
步骤S3021,控制上述核心处理器编写RocketMQ消息消费者,并按照各上述更新数据表元信息存放在上述RocketMQ消息队列中的顺序依次获取各上述更新数据表元信息;
步骤S3022,控制上述核心处理器将各上述更新数据表元信息均作为参数调用MyBatis逆向工程系统,以生成与各上述更新数据表元信息对应的多个上述更新Mapper配置文件。
具体的,先到先执行可以避免并发请求的乱序问题和性能压力。
步骤S203,控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将上述项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为上述更新Mapper配置文件。
具体的,Git仓库是一个用于存储代码和版本控制的地方。在Git中,仓库是一个包含项目文件和所有版本历史的文件夹,可以在本地或远程服务器上存储。开发人员可以在仓库中进行代码的提交、分支、合并等操作,以便跟踪和管理项目的变化。可以通过克隆现有的仓库来创建本地仓库,也可以通过推送到远程仓库来分享项目代码。Git仓库是版本控制和团队协作的重要工具。
其中,上述更新Mapper配置文件有多个,控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,包括如下步骤:
步骤S2031,编写上述Git仓库的推送脚本,得到上述Git仓库;
步骤S2032,控制上述MyBatis逆向工程引擎的后置处理器依次读取上述更新Mapper配置文件,并将读取到的各上述更新Mapper配置文件存储至上述Git仓库中的项目公共分支上。
具体的,MyBatis逆向工程生成Mapper配置文件是软件项目开发过程中的常用步骤,上述实施例着力于流程自动化和透明化,创新性地将MySQL触发器和UDF插件结合到MyBatis逆向工程中,以触发器为事件驱动,UDF插件为信息传输通道,再结合Git仓库落存生成结果,实现了MyBatis逆向工程流程的自动化。从而提升研发效率,降低项目缺陷概率,提高项目研发质量。
本申请的上述Mapper配置文件的更新方法,首先采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,更新数据表元信息为更新后的表征数据表的结构与属性的信息;然后控制MyBatis逆向工程引擎接收更新数据表元信息,并控制MyBatis逆向工程引擎根据更新数据表元信息,生成更新Mapper配置文件;最后控制MyBatis逆向工程引擎将更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为更新Mapper配置文件。该方法将MySQL触发器和UDF插件结合到MyBatis逆向工程中,以触发器为事件驱动,UDF插件为信息传输通道,再结合Git仓库落存生成结果,实现了MyBatis逆向工程流程的自动化。当表结构发生变更后,开发者只需一个步骤,即将Git远程公共分支合并到个人分支上,便可完成Mapper配置文件的更新,相比于原来的五个步骤,极大的提升了研发效率,也避免了开发者由于并行更新Mapper配置文件而可能导致的项目缺陷和混乱,解决了现有技术中采用MyBatis逆向工程更新Mapper配置文件的方法开发者执行步骤较多资源消耗较大、容易出现错误且项目质量较低的问题。
为了使得本领域技术人员能够更加清楚地了解本申请的技术方案,以下将结合具体的实施例对本申请的Mapper配置文件的更新方法的实现过程进行详细说明。
本实施例涉及一种具体的Mapper配置文件的更新方法,如图3所示,包括如下步骤:
步骤S1:开发者在客户端执行表结构更新语句,触发预制的MySQL触发器。
步骤S2:触发器执行后,调用UDF插件提供的http函数,将变更的数据表名称作为参数通过http接口传送到后向的“MyBatis逆向工程引擎”中。
步骤S3:“MyBatis逆向工程引擎”的前置处理器通过web接口接收到MySQL发送的表数据元信息,并将接收到的表数据元信息投递到RocketMQ消息队列中,保证接口请求的顺序执行。
步骤S4:“MyBatis逆向工程引擎”的核心处理器顺序获取消息队列中的数据表元信息,获取到数据表元信息后,将该信息作为参数调用MyBatis逆向工程系统,生成新的Mapper配置文件,MyBatis逆向工程需事先配置好数据库链接和密码。
步骤S5:“MyBatis逆向工程引擎”的后置处理器编写Git仓库推送脚本,依次读取新生成的Mapper配置文件,推送到事先准备的“Mybatis分支A”(即上述实施例中的项目公共分支)上。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种Mapper配置文件的更新装置,需要说明的是,本申请实施例的Mapper配置文件的更新装置可以用于执行本申请实施例所提供的用于Mapper配置文件的更新方法。该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
以下对本申请实施例提供的Mapper配置文件的更新装置进行介绍。
图4是根据本申请实施例的Mapper配置文件的更新装置的示意图。如图4所示,该装置包括调用单元10、控制单元20和存储单元30,调用单元10用于采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,上述更新数据表元信息为更新后的表征数据表的结构与属性的信息;控制单元20用于控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件;存储单元30用于控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将上述项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为上述更新Mapper配置文件。
本申请的上述Mapper配置文件的更新装置,包括调用单元、控制单元和存储单元,调用单元用于采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,更新数据表元信息为更新后的表征数据表的结构与属性的信息;控制单元用于控制MyBatis逆向工程引擎接收更新数据表元信息,并控制MyBatis逆向工程引擎根据更新数据表元信息,生成更新Mapper配置文件;存储单元用于控制MyBatis逆向工程引擎将更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为更新Mapper配置文件。该方法将MySQL触发器和UDF插件结合到MyBatis逆向工程中,以触发器为事件驱动,UDF插件为信息传输通道,再结合Git仓库落存生成结果,实现了MyBatis逆向工程流程的自动化。当表结构发生变更后,开发者只需一个步骤,即将Git远程公共分支合并到个人分支上,便可完成Mapper配置文件的更新,相比于原来的五个步骤,极大的提升了研发效率,也避免了开发者由于并行更新Mapper配置文件而可能导致的项目缺陷和混乱,解决了现有技术中采用MyBatis逆向工程更新Mapper配置文件的方法开发者执行步骤较多资源消耗较大、容易出现错误且项目质量较低的问题。
在一些可选的实例中,上述装置还包括安装单元和执行单元,安装单元用于在采用MySQL触发器调用UDF自定义函数之前,在上述MySQL触发器中安装MySQL-UDF-http插件,上述MySQL-UDF-http插件使得上述MySQL触发器能够调用通信协议接口,上述通信协议接口用于将上述更新数据表元信息发送至上述MyBatis逆向工程引擎;执行单元用于执行表结构更新语句,得到上述更新数据表元信息,并触发上述MySQL触发器,上述表结构更新语句用于对数据表结构进行更新。MySQL-UDF-http插件提供了MySQL调用http协议接口的能力,用于将变更的数据表元信息(即更新数据表元信息)推送到后向处理系统(即MyBatis逆向工程引擎)。
在一些可选的实例中,调用单元包括第一获取模块和第一发送模块,第一获取模块用于获取UDF插件提供的http函数,并将上述UDF插件提供的上述http函数确定为上述UDF自定义函数;第一发送模块用于采用上述MySQL触发器调用上述UDF自定义函数,以将上述更新数据表元信息作为参数通过http接口发送至上述MyBatis逆向工程引擎中,上述http接口为根据上述http函数确定的。这样可以将MySQL触发器和UDF插件结合到MyBatis逆向工程中,以触发器为事件驱动,UDF插件为信息传输通道,直接自动将更新数据表元信息发送至MyBatis逆向工程引擎,避免了开发人员手动发送更新数据表元信息。
在一些可选的实例中,控制单元包括第一接收模块和第一控制模块,第一接收模块用于通过上述MyBatis逆向工程引擎的前置处理器接收上述更新数据表元信息;第一控制模块用于控制上述MyBatis逆向工程引擎的核心处理器从上述前置处理器的消息队列中获取上述更新数据表元信息,并控制上述核心处理器根据上述更新数据表元信息,生成上述更新Mapper配置文件。这样可以在开发者没有任何感知和操作的情况下,更新Mapper配置文件自动在MyBatis逆向工程引擎上生成,可以供开发者直接使用,免去了手动创建的过程。
本实施例中,第一接收模块包括创建子模块、编写子模块和存放子模块,创建子模块用于在上述MyBatis逆向工程引擎中创建一个基于Spring+RocketMQ消息队列的web应用;编写子模块用于编写RocketMQ消息生产者,并通过web接口接收采用MySQL触发器发送的上述更新数据表元信息,上述web接口为根据上述web应用确定的,上述MyBatis逆向工程引擎的前置处理器包括上述web应用和上述RocketMQ消息生产者;存放子模块用于将接收到的上述更新数据表元信息存放至RocketMQ消息队列中,以接收上述更新数据表元信息。这样可以保证更新数据表元数据被MyBatis逆向工程引擎的核心处理器顺利执行。
一种可选的方案,上述更新数据表元信息有多个,第一控制模块包括第一控制子模块和第二控制子模块,第一控制子模块用于控制上述核心处理器编写RocketMQ消息消费者,并按照各上述更新数据表元信息存放在上述RocketMQ消息队列中的顺序依次获取各上述更新数据表元信息;第二控制子模块用于控制上述核心处理器将各上述更新数据表元信息均作为参数调用MyBatis逆向工程系统,以生成与各上述更新数据表元信息对应的多个上述更新Mapper配置文件。先到先执行可以避免并发请求的乱序问题和性能压力。
作为一种可选的方案,上述更新Mapper配置文件有多个,存储单元包括编写模块和第二控制模块,编写模块用于编写上述Git仓库的推送脚本,得到上述Git仓库;第二控制模块用于控制上述MyBatis逆向工程引擎的后置处理器依次读取上述更新Mapper配置文件,并将读取到的各上述更新Mapper配置文件存储至上述Git仓库中的项目公共分支上。MyBatis逆向工程生成Mapper配置文件是软件项目开发过程中的常用步骤,上述实施例着力于流程自动化和透明化,创新性地将MySQL触发器和UDF插件结合到MyBatis逆向工程中,以触发器为事件驱动,UDF插件为信息传输通道,再结合Git仓库落存生成结果,实现了MyBatis逆向工程流程的自动化。从而提升研发效率,降低项目缺陷概率,提高项目研发质量。
上述Mapper配置文件的更新装置包括处理器和存储器,上述调用单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术中采用MyBatis逆向工程更新Mapper配置文件的方法开发者执行步骤较多资源消耗较大、容易出现错误且项目质量较低的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述Mapper配置文件的更新方法。
具体地,Mapper配置文件的更新方法包括:
步骤S201,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,上述更新数据表元信息为更新后的表征数据表的结构与属性的信息;
具体的,MyBatis逆向工程引擎是一个用于生成MyBatis持久层代码的工具。它可以根据数据库表结构自动生成对应的实体类、Mapper接口和XML映射文件,简化了开发人员编写持久层代码的工作量。MyBatis逆向工程引擎通常包含在MyBatis框架的工具集中,开发人员可以通过配置文件指定需要生成代码的数据库表,然后运行逆向工程引擎即可自动生成对应的持久层代码。使用MyBatis逆向工程引擎可以提高开发效率,同时保证了持久层代码与数据库表结构的一致性。这使得开发人员可以更专注于业务逻辑的实现,而不必花费大量时间去编写重复的持久层代码。
步骤S202,控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件;
具体的,Mapper配置文件是用于定义数据库操作的映射关系的配置文件,通常用于将数据库表的字段映射到Java对象的属性上,以便于在程序中进行数据库操作。在Java开发中,通常使用MyBatis或Hibernate等持久层框架来进行数据库操作,而Mapper配置文件就是这些框架中用于定义数据库操作的映射关系的配置文件。
步骤S203,控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将上述项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为上述更新Mapper配置文件。
具体的,Git仓库是一个用于存储代码和版本控制的地方。在Git中,仓库是一个包含项目文件和所有版本历史的文件夹,可以在本地或远程服务器上存储。开发人员可以在仓库中进行代码的提交、分支、合并等操作,以便跟踪和管理项目的变化。可以通过克隆现有的仓库来创建本地仓库,也可以通过推送到远程仓库来分享项目代码。Git仓库是版本控制和团队协作的重要工具。
可选地,在采用MySQL触发器调用UDF自定义函数之前,上述方法还包括:在上述MySQL触发器中安装MySQL-UDF-http插件,上述MySQL-UDF-http插件使得上述MySQL触发器能够调用通信协议接口,上述通信协议接口用于将上述更新数据表元信息发送至上述MyBatis逆向工程引擎;执行表结构更新语句,得到上述更新数据表元信息,并触发上述MySQL触发器,上述表结构更新语句用于对数据表结构进行更新。
可选地,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,包括:获取UDF插件提供的http函数,并将上述UDF插件提供的上述http函数确定为上述UDF自定义函数;采用上述MySQL触发器调用上述UDF自定义函数,以将上述更新数据表元信息作为参数通过http接口发送至上述MyBatis逆向工程引擎中,上述http接口为根据上述http函数确定的。
可选地,控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件,包括:通过上述MyBatis逆向工程引擎的前置处理器接收上述更新数据表元信息;控制上述MyBatis逆向工程引擎的核心处理器从上述前置处理器的消息队列中获取上述更新数据表元信息,并控制上述核心处理器根据上述更新数据表元信息,生成上述更新Mapper配置文件。
可选地,通过上述MyBatis逆向工程引擎的前置处理器接收上述更新数据表元信息,包括:在上述MyBatis逆向工程引擎中创建一个基于Spring+RocketMQ消息队列的web应用;编写RocketMQ消息生产者,并通过web接口接收采用MySQL触发器发送的上述更新数据表元信息,上述web接口为根据上述web应用确定的,上述MyBatis逆向工程引擎的前置处理器包括上述web应用和上述RocketMQ消息生产者;将接收到的上述更新数据表元信息存放至RocketMQ消息队列中,以接收上述更新数据表元信息。
可选地,上述更新数据表元信息有多个,控制上述核心处理器根据上述更新数据表元信息,生成上述更新Mapper配置文件,包括:控制上述核心处理器编写RocketMQ消息消费者,并按照各上述更新数据表元信息存放在上述RocketMQ消息队列中的顺序依次获取各上述更新数据表元信息;控制上述核心处理器将各上述更新数据表元信息均作为参数调用MyBatis逆向工程系统,以生成与各上述更新数据表元信息对应的多个上述更新Mapper配置文件。
可选地,上述更新Mapper配置文件有多个,控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,包括:编写上述Git仓库的推送脚本,得到上述Git仓库;控制上述MyBatis逆向工程引擎的后置处理器依次读取上述更新Mapper配置文件,并将读取到的各上述更新Mapper配置文件存储至上述Git仓库中的项目公共分支上。
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述Mapper配置文件的更新方法。
具体地,Mapper配置文件的更新方法包括:
步骤S201,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,上述更新数据表元信息为更新后的表征数据表的结构与属性的信息;
具体的,MyBatis逆向工程引擎是一个用于生成MyBatis持久层代码的工具。它可以根据数据库表结构自动生成对应的实体类、Mapper接口和XML映射文件,简化了开发人员编写持久层代码的工作量。MyBatis逆向工程引擎通常包含在MyBatis框架的工具集中,开发人员可以通过配置文件指定需要生成代码的数据库表,然后运行逆向工程引擎即可自动生成对应的持久层代码。使用MyBatis逆向工程引擎可以提高开发效率,同时保证了持久层代码与数据库表结构的一致性。这使得开发人员可以更专注于业务逻辑的实现,而不必花费大量时间去编写重复的持久层代码。
步骤S202,控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件;
具体的,Mapper配置文件是用于定义数据库操作的映射关系的配置文件,通常用于将数据库表的字段映射到Java对象的属性上,以便于在程序中进行数据库操作。在Java开发中,通常使用MyBatis或Hibernate等持久层框架来进行数据库操作,而Mapper配置文件就是这些框架中用于定义数据库操作的映射关系的配置文件。
步骤S203,控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将上述项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为上述更新Mapper配置文件。
具体的,Git仓库是一个用于存储代码和版本控制的地方。在Git中,仓库是一个包含项目文件和所有版本历史的文件夹,可以在本地或远程服务器上存储。开发人员可以在仓库中进行代码的提交、分支、合并等操作,以便跟踪和管理项目的变化。可以通过克隆现有的仓库来创建本地仓库,也可以通过推送到远程仓库来分享项目代码。Git仓库是版本控制和团队协作的重要工具。
可选地,在采用MySQL触发器调用UDF自定义函数之前,上述方法还包括:在上述MySQL触发器中安装MySQL-UDF-http插件,上述MySQL-UDF-http插件使得上述MySQL触发器能够调用通信协议接口,上述通信协议接口用于将上述更新数据表元信息发送至上述MyBatis逆向工程引擎;执行表结构更新语句,得到上述更新数据表元信息,并触发上述MySQL触发器,上述表结构更新语句用于对数据表结构进行更新。
可选地,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,包括:获取UDF插件提供的http函数,并将上述UDF插件提供的上述http函数确定为上述UDF自定义函数;采用上述MySQL触发器调用上述UDF自定义函数,以将上述更新数据表元信息作为参数通过http接口发送至上述MyBatis逆向工程引擎中,上述http接口为根据上述http函数确定的。
可选地,控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件,包括:通过上述MyBatis逆向工程引擎的前置处理器接收上述更新数据表元信息;控制上述MyBatis逆向工程引擎的核心处理器从上述前置处理器的消息队列中获取上述更新数据表元信息,并控制上述核心处理器根据上述更新数据表元信息,生成上述更新Mapper配置文件。
可选地,通过上述MyBatis逆向工程引擎的前置处理器接收上述更新数据表元信息,包括:在上述MyBatis逆向工程引擎中创建一个基于Spring+RocketMQ消息队列的web应用;编写RocketMQ消息生产者,并通过web接口接收采用MySQL触发器发送的上述更新数据表元信息,上述web接口为根据上述web应用确定的,上述MyBatis逆向工程引擎的前置处理器包括上述web应用和上述RocketMQ消息生产者;将接收到的上述更新数据表元信息存放至RocketMQ消息队列中,以接收上述更新数据表元信息。
可选地,上述更新数据表元信息有多个,控制上述核心处理器根据上述更新数据表元信息,生成上述更新Mapper配置文件,包括:控制上述核心处理器编写RocketMQ消息消费者,并按照各上述更新数据表元信息存放在上述RocketMQ消息队列中的顺序依次获取各上述更新数据表元信息;控制上述核心处理器将各上述更新数据表元信息均作为参数调用MyBatis逆向工程系统,以生成与各上述更新数据表元信息对应的多个上述更新Mapper配置文件。
可选地,上述更新Mapper配置文件有多个,控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,包括:编写上述Git仓库的推送脚本,得到上述Git仓库;控制上述MyBatis逆向工程引擎的后置处理器依次读取上述更新Mapper配置文件,并将读取到的各上述更新Mapper配置文件存储至上述Git仓库中的项目公共分支上。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
步骤S201,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,上述更新数据表元信息为更新后的表征数据表的结构与属性的信息;
步骤S202,控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件;
步骤S203,控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将上述项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为上述更新Mapper配置文件。
本文中的设备可以是服务器、PC、PAD、手机等。
可选地,在采用MySQL触发器调用UDF自定义函数之前,上述方法还包括:在上述MySQL触发器中安装MySQL-UDF-http插件,上述MySQL-UDF-http插件使得上述MySQL触发器能够调用通信协议接口,上述通信协议接口用于将上述更新数据表元信息发送至上述MyBatis逆向工程引擎;执行表结构更新语句,得到上述更新数据表元信息,并触发上述MySQL触发器,上述表结构更新语句用于对数据表结构进行更新。
可选地,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,包括:获取UDF插件提供的http函数,并将上述UDF插件提供的上述http函数确定为上述UDF自定义函数;采用上述MySQL触发器调用上述UDF自定义函数,以将上述更新数据表元信息作为参数通过http接口发送至上述MyBatis逆向工程引擎中,上述http接口为根据上述http函数确定的。
可选地,控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件,包括:通过上述MyBatis逆向工程引擎的前置处理器接收上述更新数据表元信息;控制上述MyBatis逆向工程引擎的核心处理器从上述前置处理器的消息队列中获取上述更新数据表元信息,并控制上述核心处理器根据上述更新数据表元信息,生成上述更新Mapper配置文件。
可选地,通过上述MyBatis逆向工程引擎的前置处理器接收上述更新数据表元信息,包括:在上述MyBatis逆向工程引擎中创建一个基于Spring+RocketMQ消息队列的web应用;编写RocketMQ消息生产者,并通过web接口接收采用MySQL触发器发送的上述更新数据表元信息,上述web接口为根据上述web应用确定的,上述MyBatis逆向工程引擎的前置处理器包括上述web应用和上述RocketMQ消息生产者;将接收到的上述更新数据表元信息存放至RocketMQ消息队列中,以接收上述更新数据表元信息。
可选地,上述更新数据表元信息有多个,控制上述核心处理器根据上述更新数据表元信息,生成上述更新Mapper配置文件,包括:控制上述核心处理器编写RocketMQ消息消费者,并按照各上述更新数据表元信息存放在上述RocketMQ消息队列中的顺序依次获取各上述更新数据表元信息;控制上述核心处理器将各上述更新数据表元信息均作为参数调用MyBatis逆向工程系统,以生成与各上述更新数据表元信息对应的多个上述更新Mapper配置文件。
可选地,上述更新Mapper配置文件有多个,控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,包括:编写上述Git仓库的推送脚本,得到上述Git仓库;控制上述MyBatis逆向工程引擎的后置处理器依次读取上述更新Mapper配置文件,并将读取到的各上述更新Mapper配置文件存储至上述Git仓库中的项目公共分支上。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
步骤S201,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,上述更新数据表元信息为更新后的表征数据表的结构与属性的信息;
步骤S202,控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件;
步骤S203,控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将上述项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为上述更新Mapper配置文件。
可选地,在采用MySQL触发器调用UDF自定义函数之前,上述方法还包括:在上述MySQL触发器中安装MySQL-UDF-http插件,上述MySQL-UDF-http插件使得上述MySQL触发器能够调用通信协议接口,上述通信协议接口用于将上述更新数据表元信息发送至上述MyBatis逆向工程引擎;执行表结构更新语句,得到上述更新数据表元信息,并触发上述MySQL触发器,上述表结构更新语句用于对数据表结构进行更新。
可选地,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,包括:获取UDF插件提供的http函数,并将上述UDF插件提供的上述http函数确定为上述UDF自定义函数;采用上述MySQL触发器调用上述UDF自定义函数,以将上述更新数据表元信息作为参数通过http接口发送至上述MyBatis逆向工程引擎中,上述http接口为根据上述http函数确定的。
可选地,控制上述MyBatis逆向工程引擎接收上述更新数据表元信息,并控制上述MyBatis逆向工程引擎根据上述更新数据表元信息,生成更新Mapper配置文件,包括:通过上述MyBatis逆向工程引擎的前置处理器接收上述更新数据表元信息;控制上述MyBatis逆向工程引擎的核心处理器从上述前置处理器的消息队列中获取上述更新数据表元信息,并控制上述核心处理器根据上述更新数据表元信息,生成上述更新Mapper配置文件。
可选地,通过上述MyBatis逆向工程引擎的前置处理器接收上述更新数据表元信息,包括:在上述MyBatis逆向工程引擎中创建一个基于Spring+RocketMQ消息队列的web应用;编写RocketMQ消息生产者,并通过web接口接收采用MySQL触发器发送的上述更新数据表元信息,上述web接口为根据上述web应用确定的,上述MyBatis逆向工程引擎的前置处理器包括上述web应用和上述RocketMQ消息生产者;将接收到的上述更新数据表元信息存放至RocketMQ消息队列中,以接收上述更新数据表元信息。
可选地,上述更新数据表元信息有多个,控制上述核心处理器根据上述更新数据表元信息,生成上述更新Mapper配置文件,包括:控制上述核心处理器编写RocketMQ消息消费者,并按照各上述更新数据表元信息存放在上述RocketMQ消息队列中的顺序依次获取各上述更新数据表元信息;控制上述核心处理器将各上述更新数据表元信息均作为参数调用MyBatis逆向工程系统,以生成与各上述更新数据表元信息对应的多个上述更新Mapper配置文件。
可选地,上述更新Mapper配置文件有多个,控制上述MyBatis逆向工程引擎将上述更新Mapper配置文件存储至Git仓库中的项目公共分支上,包括:编写上述Git仓库的推送脚本,得到上述Git仓库;控制上述MyBatis逆向工程引擎的后置处理器依次读取上述更新Mapper配置文件,并将读取到的各上述更新Mapper配置文件存储至上述Git仓库中的项目公共分支上。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本申请的上述Mapper配置文件的更新方法,首先采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,更新数据表元信息为更新后的表征数据表的结构与属性的信息;然后控制MyBatis逆向工程引擎接收更新数据表元信息,并控制MyBatis逆向工程引擎根据更新数据表元信息,生成更新Mapper配置文件;最后控制MyBatis逆向工程引擎将更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为更新Mapper配置文件。该方法将MySQL触发器和UDF插件结合到MyBatis逆向工程中,以触发器为事件驱动,UDF插件为信息传输通道,再结合Git仓库落存生成结果,实现了MyBatis逆向工程流程的自动化。当表结构发生变更后,开发者只需一个步骤,即将Git远程公共分支合并到个人分支上,便可完成Mapper配置文件的更新,相比于原来的五个步骤,极大的提升了研发效率,也避免了开发者由于并行更新Mapper配置文件而可能导致的项目缺陷和混乱,解决了现有技术中采用MyBatis逆向工程更新Mapper配置文件的方法开发者执行步骤较多资源消耗较大、容易出现错误且项目质量较低的问题。
2)、本申请的上述Mapper配置文件的更新装置,包括调用单元、控制单元和存储单元,调用单元用于采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,更新数据表元信息为更新后的表征数据表的结构与属性的信息;控制单元用于控制MyBatis逆向工程引擎接收更新数据表元信息,并控制MyBatis逆向工程引擎根据更新数据表元信息,生成更新Mapper配置文件;存储单元用于控制MyBatis逆向工程引擎将更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为更新Mapper配置文件。该方法将MySQL触发器和UDF插件结合到MyBatis逆向工程中,以触发器为事件驱动,UDF插件为信息传输通道,再结合Git仓库落存生成结果,实现了MyBatis逆向工程流程的自动化。当表结构发生变更后,开发者只需一个步骤,即将Git远程公共分支合并到个人分支上,便可完成Mapper配置文件的更新,相比于原来的五个步骤,极大的提升了研发效率,也避免了开发者由于并行更新Mapper配置文件而可能导致的项目缺陷和混乱,解决了现有技术中采用MyBatis逆向工程更新Mapper配置文件的方法开发者执行步骤较多资源消耗较大、容易出现错误且项目质量较低的问题。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种Mapper配置文件的更新方法,其特征在于,包括:
采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,所述更新数据表元信息为更新后的表征数据表的结构与属性的信息;
控制所述MyBatis逆向工程引擎接收所述更新数据表元信息,并控制所述MyBatis逆向工程引擎根据所述更新数据表元信息,生成更新Mapper配置文件;
控制所述MyBatis逆向工程引擎将所述更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将所述项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为所述更新Mapper配置文件。
2.根据权利要求1所述的更新方法,其特征在于,在采用MySQL触发器调用UDF自定义函数之前,所述方法还包括:
在所述MySQL触发器中安装MySQL-UDF-http插件,所述MySQL-UDF-http插件使得所述MySQL触发器能够调用通信协议接口,所述通信协议接口用于将所述更新数据表元信息发送至所述MyBatis逆向工程引擎;
执行表结构更新语句,得到所述更新数据表元信息,并触发所述MySQL触发器,所述表结构更新语句用于对数据表结构进行更新。
3.根据权利要求1所述的更新方法,其特征在于,采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,包括:
获取UDF插件提供的http函数,并将所述UDF插件提供的所述http函数确定为所述UDF自定义函数;
采用所述MySQL触发器调用所述UDF自定义函数,以将所述更新数据表元信息作为参数通过http接口发送至所述MyBatis逆向工程引擎中,所述http接口为根据所述http函数确定的。
4.根据权利要求1所述的更新方法,其特征在于,控制所述MyBatis逆向工程引擎接收所述更新数据表元信息,并控制所述MyBatis逆向工程引擎根据所述更新数据表元信息,生成更新Mapper配置文件,包括:
通过所述MyBatis逆向工程引擎的前置处理器接收所述更新数据表元信息;
控制所述MyBatis逆向工程引擎的核心处理器从所述前置处理器的消息队列中获取所述更新数据表元信息,并控制所述核心处理器根据所述更新数据表元信息,生成所述更新Mapper配置文件。
5.根据权利要求4所述的更新方法,其特征在于,通过所述MyBatis逆向工程引擎的前置处理器接收所述更新数据表元信息,包括:
在所述MyBatis逆向工程引擎中创建一个基于Spring+RocketMQ消息队列的web应用;
编写RocketMQ消息生产者,并通过web接口接收采用MySQL触发器发送的所述更新数据表元信息,所述web接口为根据所述web应用确定的,所述MyBatis逆向工程引擎的前置处理器包括所述web应用和所述RocketMQ消息生产者;
将接收到的所述更新数据表元信息存放至RocketMQ消息队列中,以接收所述更新数据表元信息。
6.根据权利要求4所述的更新方法,其特征在于,所述更新数据表元信息有多个,控制所述核心处理器根据所述更新数据表元信息,生成所述更新Mapper配置文件,包括:
控制所述核心处理器编写RocketMQ消息消费者,并按照各所述更新数据表元信息存放在所述RocketMQ消息队列中的顺序依次获取各所述更新数据表元信息;
控制所述核心处理器将各所述更新数据表元信息均作为参数调用MyBatis逆向工程系统,以生成与各所述更新数据表元信息对应的多个所述更新Mapper配置文件。
7.根据权利要求1至6中任意一项所述的更新方法,其特征在于,所述更新Mapper配置文件有多个,控制所述MyBatis逆向工程引擎将所述更新Mapper配置文件存储至Git仓库中的项目公共分支上,包括:
编写所述Git仓库的推送脚本,得到所述Git仓库;
控制所述MyBatis逆向工程引擎的后置处理器依次读取所述更新Mapper配置文件,并将读取到的各所述更新Mapper配置文件存储至所述Git仓库中的项目公共分支上。
8.一种Mapper配置文件的更新装置,其特征在于,包括:
调用单元,用于采用MySQL触发器调用UDF自定义函数,以将更新数据表元信息发送至MyBatis逆向工程引擎,其中,所述更新数据表元信息为更新后的表征数据表的结构与属性的信息;
控制单元,用于控制所述MyBatis逆向工程引擎接收所述更新数据表元信息,并控制所述MyBatis逆向工程引擎根据所述更新数据表元信息,生成更新Mapper配置文件;
存储单元,用于控制所述MyBatis逆向工程引擎将所述更新Mapper配置文件存储至Git仓库中的项目公共分支上,以使得开发者将所述项目公共分支合并到个人开发分支上,以将初始Mapper配置文件更新为所述更新Mapper配置文件。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的Mapper配置文件的更新方法。
10.一种电子设备,其特征在于,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至7中任意一项所述的Mapper配置文件的更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311737692.3A CN117724741A (zh) | 2023-12-17 | 2023-12-17 | Mapper配置文件的更新方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311737692.3A CN117724741A (zh) | 2023-12-17 | 2023-12-17 | Mapper配置文件的更新方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117724741A true CN117724741A (zh) | 2024-03-19 |
Family
ID=90210204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311737692.3A Pending CN117724741A (zh) | 2023-12-17 | 2023-12-17 | Mapper配置文件的更新方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117724741A (zh) |
-
2023
- 2023-12-17 CN CN202311737692.3A patent/CN117724741A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9477727B2 (en) | Abstracting data for use by a mobile device having occasional connectivity | |
US9128996B2 (en) | Uniform data model and API for representation and processing of semantic data | |
US9286040B2 (en) | Software builder | |
US10402308B2 (en) | Sandboxing for custom logic | |
CN109492053B (zh) | 用于访问数据的方法和装置 | |
US11755461B2 (en) | Asynchronous consumer-driven contract testing in micro service architecture | |
US10977011B2 (en) | Structured development for web application frameworks | |
CN113434158B (zh) | 一种大数据组件的自定义管理方法、装置、设备及介质 | |
US20140123114A1 (en) | Framework for integration and execution standardization (fiesta) | |
US10922216B1 (en) | Intelligent automation test workflow | |
US20120089931A1 (en) | Lightweight operation automation based on gui | |
US11226978B2 (en) | Systems and methods for dynamic creation of schemas | |
US20230092752A1 (en) | System and method for development of gateway policies in an application programming interface environment | |
CN111125064B (zh) | 一种生成数据库模式定义语句的方法和装置 | |
US20230259358A1 (en) | Documentation enforcement during compilation | |
US20230099501A1 (en) | Masking shard operations in distributed database systems | |
CN115687503A (zh) | 数据库间的数据同步方法、装置、设备及存储介质 | |
US9934019B1 (en) | Application function conversion to a service | |
US9059992B2 (en) | Distributed mobile enterprise application platform | |
CN116627448A (zh) | 一种创建微服务的方法及相关设备 | |
CN114489674A (zh) | 动态数据模型的数据校验方法和装置 | |
CN117724741A (zh) | Mapper配置文件的更新方法、装置和存储介质 | |
US10262054B2 (en) | Database and service upgrade without downtime | |
US11888937B2 (en) | Domain specific provider contracts for core data services | |
Chondamrongkul | Model-driven framework to support evolution of mobile applications in multi-cloud environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |