CN114816363A - 一种基于MyBatis的数据服务API实现方法及装置 - Google Patents
一种基于MyBatis的数据服务API实现方法及装置 Download PDFInfo
- Publication number
- CN114816363A CN114816363A CN202210465080.2A CN202210465080A CN114816363A CN 114816363 A CN114816363 A CN 114816363A CN 202210465080 A CN202210465080 A CN 202210465080A CN 114816363 A CN114816363 A CN 114816363A
- Authority
- CN
- China
- Prior art keywords
- interface
- data source
- query
- mybatis
- api
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于MyBatis的数据服务API实现方法及装置,注册数据源,将注册的数据源信息保存至数据源配置表中;配置接口,将接口定义与注册的数据源信息包含的数据源ID关联,保存至接口配置表中;通过加载引擎读取接口配置表中的接口配置信息,生成MyBatis查询对象并通过关联的数据源ID加载数据源信息,注入Spring容器中,生成API接口;调用API接口时,传入接口ID和查询参数,通过执行引擎从Spring容器中获取MyBatis查询对象、数据源信息,通过数据源信息连接数据源执行SQL数据查询,得到查询结果并返回给用户。上述方案通过配置实现数据服务API动态生成,减少了大量的编码、发布工作,使得实现数据服务更简单、更高效。
Description
技术领域
本发明涉及软件技术领域,特别涉及一种基于MyBatis的数据服务API实现方法及装置。
背景技术
数据服务API在大数据领域应用越来越广泛,数据平台加工和沉淀了各种数据(比如基础数据、营销数据、用户画像数据等),需要对外部系统提供各种数据的实时查询服务,但业务需求变化快,对API的需求也非常多,传统方式开发支撑频繁的需求存在以下问题:
1)API开发都是接收查询参数,编写查询SQL,封装结果返回,存在很多重复代码。
2)开发、测试、上线流程长,交付慢,无法快速支撑频繁变化的众多业务需求。
3)业务变动,都要修改SQL,重新测试,再上线,效率低。
发明内容
本发明提供了一种基于MyBatis的数据服务API实现方法及装置,以减少数据服务API开发过程中大量的编码和发布工作,解决了开发-测试-上线流程长、交付效率低的问题,使得实现数据服务更简单、更高效。
为实现上述目的,本发明提供如下技术方案:
一种基于MyBatis的数据服务API实现方法,所述方法包括:
注册数据源,将注册的数据源信息保存至数据源配置表中;
配置接口,将接口定义与注册的数据源信息包含的数据源ID关联,保存至接口配置表中;
通过加载引擎读取接口配置表中的接口配置信息,生成MyBatis查询对象并通过关联的数据源ID加载数据源信息,注入Spring容器中,生成API接口;
调用API接口时,传入接口ID和查询参数,通过执行引擎从Spring容器中获取MyBatis查询对象、数据源信息,通过所述数据源信息连接数据源执行SQL数据查询,得到查询结果并返回给用户。
优选的,所述数据源信息包括:数据源ID、URL地址、用户名和密码。
进一步地,所述配置接口包括:获取接口创建请求,提取接口创建请求中携带的接口配置需求;针对接口配置需求定义接口ID和MyBatis语法的SQL查询语句,得到接口定义。
进一步地,所述生成API接口包括:
加载引擎加载接口配置表中的接口定义和关联的数据源,基于MyBatis语法的SQL查询语句生成MyBatis查询对象,将所述MyBatis查询对象、数据源与接口ID进行绑定,生成API接口。
进一步地,所述调用API接口包括:执行引擎接收API接口调用请求,从请求中获取接口ID和查询参数,通过接口ID从Spring容器中获取MyBatis查询对象和数据源,连接数据源执行查询。
一种基于MyBatis的数据服务API实现装置,包括:
注册模块,用于从数据源配置表中动态获取注册的数据源信息;
接口配置模块,用于配置接口,将接口定义与注册的数据源信息包含的数据源ID关联,保存至接口配置表中;
加载模块,用于通过加载引擎读取接口配置表中的接口配置信息,生成MyBatis查询对象并通过关联的数据源ID加载数据源信息,注入Spring容器中,生成API接口;
查询模块,用于调用API接口时,传入接口ID和查询参数,通过执行引擎从Spring容器中获取MyBatis查询对象、数据源信息,通过所述数据源信息连接数据源执行SQL数据查询,得到查询结果并返回给用户。
优选的,所述接口配置模块包括:
需求提取单元,用于获取接口创建请求,提取接口创建请求中携带的接口配置需求;
定义单元,用于针对接口配置需求定义接口ID和MyBatis语法的SQL查询语句,得到接口定义。
进一步地,所述加载模块包括:
生成单元,用于加载引擎加载接口配置表中的接口定义和关联的数据源,基于MyBatis语法的SQL查询语句生成MyBatis查询对象,将所述MyBatis查询对象、数据源与接口ID进行绑定,生成API接口。
进一步地,所述查询模块包括:
执行单元,用于执行引擎接收API接口调用请求,从请求中获取接口ID和查询参数,通过接口ID从Spring容器中获取MyBatis查询对象和数据源,连接数据源执行查询。
与现有技术相比,本发明的有益效果是:
本发明针对API开发中业务需求量大且频繁变化的问题,提供一种基于MyBatis的数据服务API实现方法及装置,以减少数据服务API开发过程中大量的编码和发布工作,解决了开发人员在不同的项目中重复编写同样功能的代码造成的工作效率低下的问题,避免了大量代码编译失败的几率;缩短了编码工作及发布的时间,有效提高交付效率。确保开发、测试、上线流程中各个环节的执行流畅度。
本发明实现了在线开发、测试、发布接口,灵活支持各种复杂查询接口实现,因此能够使得在无需发布代码的情况下,低成本快速实现数据服务API,使得实现数据服务更简单、更高效。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明具体实施方式中提供的一种基于MyBatis的数据服务API实现方法流程图;
图2为本发明具体实施方式中提供的实现基于MyBatis的数据服务API系统结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1:如图1所示,本发明提供一种基于MyBatis的数据服务API实现方法,所述方法包括以下步骤:
S1注册数据源,将注册的数据源信息保存至数据源配置表中;
S2配置接口,将接口定义与注册的数据源信息包含的数据源ID关联,保存至接口配置表中;
S3通过加载引擎读取接口配置表中的接口配置信息,生成MyBatis查询对象并通过关联的数据源ID加载数据源信息,注入Spring容器中,生成API接口;
S4调用API接口时,传入接口ID和查询参数,通过执行引擎从Spring容器中获取MyBatis查询对象、数据源信息,通过所述数据源信息连接数据源执行SQL数据查询,得到查询结果并返回给用户。
步骤S1中的数据源注册是将需要查询的数据源信息接入系统进行数据源信息注册。存储于数据源配置表中注册的数据源信息包括数据源ID、URL地址、用户名和密码。
步骤S2中的配置接口包括:获取接口创建请求,提取接口创建请求中携带的接口配置需求;针对接口配置需求定义接口ID和MyBatis语法的SQL查询语句,得到接口定义。
步骤S2中,生成API接口包括:
加载引擎加载接口配置表中的接口定义和关联的数据源,基于MyBatis语法的SQL查询语句生成MyBatis查询对象,将所述MyBatis查询对象、数据源与接口ID进行绑定,生成API接口。
步骤S4中,调用API接口包括:执行引擎接收API接口调用请求,从请求中获取接口ID和查询参数,通过接口ID从Spring容器中获取MyBatis查询对象和数据源,连接数据源执行查询。
实施例2:基于同一技术构思,本发明还提供一种基于MyBatis实现的数据服务API装置,包括:
一种基于MyBatis的数据服务API实现装置,其特征在于,包括:
注册模块,用于注册数据源,将注册的数据源信息保存至数据源配置表中;接口配置模块,用于配置接口,将接口定义与注册的数据源信息包含的数据源ID关联,保存至接口配置表中;
加载模块,用于通过加载引擎读取接口配置表中的接口配置信息,生成MyBatis查询对象并通过关联的数据源ID加载数据源信息,注入Spring容器中,生成API接口;
查询模块,用于调用API接口时,传入接口ID和查询参数,通过执行引擎从Spring容器中获取MyBatis查询对象、数据源信息,通过所述数据源信息连接数据源执行SQL数据查询,得到查询结果并返回给用户。
其中,接口配置模块包括:
需求提取单元,用于获取接口创建请求,提取接口创建请求中携带的接口配置需求;
定义单元,用于针对接口配置需求定义接口ID和MyBatis语法的SQL查询语句,得到接口定义。
加载模块包括:
生成单元,用于加载引擎加载接口配置表中的接口定义和关联的数据源,基于MyBatis语法的SQL查询语句生成MyBatis查询对象,将所述MyBatis查询对象、数据源与接口ID进行绑定,生成API接口。
查询模块包括:
执行单元,用于执行引擎接收API接口调用请求,从请求中获取接口ID和查询参数,通过接口ID从Spring容器中获取MyBatis查询对象和数据源,连接数据源执行查询。
实施例3:从硬件层面来说,本发明提供一种以实现基于MyBatis的数据服务API实现方法中的全部或部分内容的产品实施例,即一种实现基于MyBatis的数据服务API系统,该系统的具体结构如图2所示,其包括:
一、数据源,作为API接口要查询的数据源,是系统本身存在的,其存储的数据即为用于想要查询的数据。
二、接口管理,是本发明提供的装置,用于管理数据源和接口定义。
1)数据源配置,支持自定义任意数据库连接信息,包括url、用户名、密码。
2)接口配置。编写SQL语句,关联数据源。通过ACE插件实现在线编辑器,支持SQL语法和MyBatis语法,功能上实现在线测试、保存发布等功能。
三、接口引擎分两部分:
1、加载引擎:负责加载配置的接口定义、数据源,生成接口(包括MyBatis语法的SQL查询对象、数据源对象)。
1)加载数据源:通过数据源连接信息生成DataSource,并生成SqlSessionTemplate,注入到Spring容器中。
2)加载接口:将SQL拼接MyBatis的XML字符串,将接口名作为Select的Id,SQL语句作为内容,通过内存流的方式将XML载入,注入到Spring容器中。
2、执行引擎:负责接收接口调用的请求(接口ID、查询条件参数),通过ID获取MyBatis语法的SQL查询对象、数据源对象,并通过数据源对象连接到数据源执行SQL查询,获取查询结果返回。
1)接收参数。通过Controller定义一个通用接口,将接口名作为UrlPath参数,接口参数类型定义成Map<String,Object>,用于接收SQL需要的参数。
2)执行SQL。从Spring中获取数据源SqlSessionTemplate对象,然后执行Select方法,传入StatementId(select的id)和Parameters参数。
通过设置PageHelper.startPage(pageNum,pageSize)实现分页查询;
3)返回结果。将SQL执行的结果封装成JSON,进行返回。
四、接口调用,是接口需求方的装置,通过向执行引擎发起查询请求,获取查询结果数据。
在本实施例中,该系统可以参照实施例1中的一种基于MyBatis的数据服务API实现方法的实施例,以及,实施例2中的一种基于MyBatis的数据服务API实现装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、系统(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (9)
1.一种基于MyBatis的数据服务API实现方法,其特征在于,所述方法包括:
注册数据源,将注册的数据源信息保存至数据源配置表中;
配置接口,将接口定义与注册的数据源信息包含的数据源ID关联,保存至接口配置表中;
通过加载引擎读取接口配置表中的接口配置信息,生成MyBatis查询对象并通过关联的数据源ID加载数据源信息,注入Spring容器中,生成API接口;
调用API接口时,传入接口ID和查询参数,通过执行引擎从Spring容器中获取MyBatis查询对象、数据源信息,通过所述数据源信息连接数据源执行SQL数据查询,得到查询结果并返回给用户。
2.根据权利要求1所述的方法,其特征在于,所述数据源信息包括:数据源ID、URL地址、用户名和密码。
3.根据权利要求2所述的方法,其特征在于,所述配置接口包括:获取接口创建请求,提取接口创建请求中携带的接口配置需求;针对接口配置需求定义接口ID和MyBatis语法的SQL查询语句,得到接口定义。
4.根据权利要求3所述的方法,其特征在于,所述生成API接口包括:
加载引擎加载接口配置表中的接口定义和关联的数据源,基于MyBatis语法的SQL查询语句生成MyBatis查询对象,将所述MyBatis查询对象、数据源与接口ID进行绑定,生成API接口。
5.根据权利要求4所述的方法,其特征在于,所述调用API接口包括:执行引擎接收API接口调用请求,从请求中获取接口ID和查询参数,通过接口ID从Spring容器中获取MyBatis查询对象和数据源,连接数据源执行查询。
6.一种基于MyBatis的数据服务API实现装置,其特征在于,包括:
注册模块,用于注册数据源,将注册的数据源信息保存至数据源配置表中;
接口配置模块,用于配置接口,将接口定义与注册的数据源信息包含的数据源ID关联,保存至接口配置表中;
加载模块,用于通过加载引擎读取接口配置表中的接口配置信息,生成MyBatis查询对象并通过关联的数据源ID加载数据源信息,注入Spring容器中,生成API接口;
查询模块,用于调用API接口时,传入接口ID和查询参数,通过执行引擎从Spring容器中获取MyBatis查询对象、数据源信息,通过所述数据源信息连接数据源执行SQL数据查询,得到查询结果并返回给用户。
7.根据权利要求6所述的装置,其特征在于,所述接口配置模块包括:
需求提取单元,用于获取接口创建请求,提取接口创建请求中携带的接口配置需求;
定义单元,用于针对接口配置需求定义接口ID和MyBatis语法的SQL查询语句,得到接口定义。
8.根据权利要求7所述的装置,其特征在于,所述加载模块包括:
生成单元,用于加载引擎加载接口配置表中的接口定义和关联的数据源,基于MyBatis语法的SQL查询语句生成MyBatis查询对象,将所述MyBatis查询对象、数据源与接口ID进行绑定,生成API接口。
9.根据权利要求8所述的装置,其特征在于,所述查询模块包括:
执行单元,用于执行引擎接收API接口调用请求,从请求中获取接口ID和查询参数,通过接口ID从Spring容器中获取MyBatis查询对象和数据源,连接数据源执行查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210465080.2A CN114816363A (zh) | 2022-04-29 | 2022-04-29 | 一种基于MyBatis的数据服务API实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210465080.2A CN114816363A (zh) | 2022-04-29 | 2022-04-29 | 一种基于MyBatis的数据服务API实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114816363A true CN114816363A (zh) | 2022-07-29 |
Family
ID=82509841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210465080.2A Pending CN114816363A (zh) | 2022-04-29 | 2022-04-29 | 一种基于MyBatis的数据服务API实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114816363A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302365A (zh) * | 2023-05-17 | 2023-06-23 | 建信金融科技有限责任公司 | 数据持久层的测试方法、装置、电子设备和存储介质 |
-
2022
- 2022-04-29 CN CN202210465080.2A patent/CN114816363A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302365A (zh) * | 2023-05-17 | 2023-06-23 | 建信金融科技有限责任公司 | 数据持久层的测试方法、装置、电子设备和存储介质 |
CN116302365B (zh) * | 2023-05-17 | 2023-08-15 | 建信金融科技有限责任公司 | 数据持久层的测试方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109002362B (zh) | 一种服务方法、装置、系统以及电子设备 | |
CN110502212B (zh) | 一种面向多语言的高并发在线开发支撑方法 | |
CN112905459B (zh) | 服务接口测试方法、装置、电子设备及存储介质 | |
EP3353672A1 (en) | Method and apparatus for transferring data between databases | |
CN110704037A (zh) | 一种规则引擎实现方法及装置 | |
CN113407362A (zh) | 基于车载Android系统SOA架构SOMEIP通信中间层实现方法及系统 | |
CN114816363A (zh) | 一种基于MyBatis的数据服务API实现方法及装置 | |
CN111125067A (zh) | 数据维护方法及装置 | |
CN110309145A (zh) | 一种数据表调整方法、数据表创建方法及装置 | |
CN105094849A (zh) | 一种插件的资源调用方法和装置 | |
CN112579212A (zh) | 跨语言调用的方法、调用方装置及被调用方装置 | |
CN113626007B (zh) | 连接器模型的应用方法、装置及服务器 | |
CN115982257A (zh) | 接口创建方法以及相关设备 | |
CN115390936A (zh) | 统一校验方法、装置、设备和存储介质 | |
CN112052035B (zh) | 基于银行后线系统的版本组包方法及装置 | |
CN114327941A (zh) | 一种服务提供方法及装置 | |
CN107995301B (zh) | 一种快速的基于互联网的数据收发方法 | |
CN106570143B (zh) | 一种发送响应对象的方法和装置 | |
CN106066789A (zh) | 一种对摄像头驱动程序进行编译的方法和装置 | |
CN108062329B (zh) | 一种数据导入方法及装置 | |
CN113900959B (zh) | 软件测试方法、装置、设备及存储介质 | |
CN116483376B (zh) | C#代码自动生成方法、系统及存储介质 | |
CN114944998B (zh) | 基于模拟器的物联网系统测试方法及装置 | |
CN113472880B (zh) | 微服务架构中基于数据库配置的网关处理方法及系统 | |
CN113254328B (zh) | 白盒测试方法、系统、移动终端及存储介质 |
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 |