CN109408529A - 一种底层数据的处理方法及*** - Google Patents
一种底层数据的处理方法及*** Download PDFInfo
- Publication number
- CN109408529A CN109408529A CN201811339891.8A CN201811339891A CN109408529A CN 109408529 A CN109408529 A CN 109408529A CN 201811339891 A CN201811339891 A CN 201811339891A CN 109408529 A CN109408529 A CN 109408529A
- Authority
- CN
- China
- Prior art keywords
- api
- sql statement
- instruction information
- local cache
- bottom data
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 37
- 235000013399 edible fruits Nutrition 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 2
- 235000014552 Cassia tora Nutrition 0.000 description 2
- 244000201986 Cassia tora Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种底层数据的处理方法及***,该方法包括:获取调用方的底层数据操作请求,底层数据操作请求包括确定API的指示信息和需要执行的指令信息。基于确定API的指示信息,获得与API对应的SQL语句,API对应的SQL语句为预先设置并存储于本地缓存中的。基于需要执行的指令信息,对API对应的SQL语句进行拼接,获得可执行SQL语句。执行可执行SQL语句,获得执行结果。将执行结果返回调用方。本发明提供的方案中,通过提供多种API、不同的缓存策略和读写分离策略,为用户提供了全面、高效和快速处理底层数据的服务,提高底层数据的处理效率和速度。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种底层数据的处理方法及***。
背景技术
随着科学技术的快速发展,互联网领域也在高速的发展。在互联网开发过程中,底层数据通信与交互显得尤为重要。目前常用于底层数据通信与交互的框架有MyBatis和Hibernate。
MyBatis是一种开源的数据库连接(Java DataBase Connectivity,JDBC)底层交互框架,实现了对象关系映射(Object Relational Mapping,ORM)和结构化查询语言(Structured Query Language,SQL)自动封装的功能,提供了应用程序编程接口(Application Programming Interface,API)方法,是目前最主流的底层数据交互框架。Hibernate是一个开放源代码的对象关系映射框架,对JDBC进行了非常轻量级的对象封装,将简单的Java对象(Plain Ordinary Java Object,POJO)与数据库表建立映射关系,是一个全自动的ORM框架,能自动生成SQL语句自动执行和在应用JavaEE服务器端组件模型(Enterprise JavaBean,EJB)的Java2平台企业版(Java 2Platform Enterprise Edition,J2EE)架构中取代CMP,完成数据持久化。
目前,MyBatis和Hibernate仅能提供ORM功能,一方面,无法灵活自定义SQL,因此,无法满足互联网业务的所有场景要求。另一方面,缺少数据库读写分离策略和不支持分表功能,因此,处理数据较为繁琐和效率低下。
综上可知,现有技术提供的基于底层数据处理的框架,无法为用户提供全面、高效和快速处理底层数据的服务。
发明内容
有鉴于此,本发明实施例提供一种底层数据的处理方法及***,以解决现有的基于底层数据处理的框架中,无法为用户提供全面、高效和快速处理底层数据的服务的问题。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开了一种底层数据的处理方法,适用于底层数据的处理***,所述底层数据的处理***基于Java底层框架建立,所述方法包括:
获取调用方的底层数据操作请求,所述底层数据操作请求包括确定API的指示信息和需要执行的指令信息;
基于所述确定API的指示信息,获得与所述API对应的SQL语句,所述API对应的SQL语句为预先设置并存储于本地缓存中的;
基于所述需要执行的指令信息,对所述API对应的SQL语句进行拼接,获得可执行SQL语句;
执行所述可执行SQL语句,获得执行结果;
将所述执行结果返回所述调用方。
可选的,所述API对应的SQL语句为预先设置并存储于本地缓存中的,包括:
创建每一个API所使用的SQL语句;
将所述每一个API所使用的SQL语句都封装成MAP对象;
将所述MAP对象存储于本地缓存,所述本地缓存包括Redis缓存、Memcached缓存或JVM缓存。
可选的,所述基于所述确定API的指示信息,获得与所述API对应的SQL语句,包括:
基于所述确定API的指示信息,从所述本地缓存中获得与所述指示信息对应的MAP对象;
基于所述MAP对象,获得所述API对应的SQL语句。
可选的,所述将所述执行结果返回所述调用方,包括:
基于对象关系映射ORM,将所述执行结果转换成预设数据类型,所述预设数据类型包括对象列表、和/或单个对象、和/或Map对象;
将所述预设数据类型的执行结果返回所述调用方。
可选的,所述获得所述API对应的SQL语句,包括:
若所述API包括查找Find接口,获得与所述Find接口对应的SQL语句;
和/或,若所述API包括创建Create接口,获得与所述Create接口对应的SQL语句;
和/或,若所述API包括更新Update接口,获得与所述Update接口对应的SQL语句;
和/或,若所述API包括列表List接口,获得与所述List接口对应的SQL语句;
和/或,若所述API包括分页Page接口,获得与所述Page接口对应的SQL语句;
和/或,若所述API包括计数Count接口,获得与所述Count接口对应的SQL语句。
可选的,所述方法还包括:
记录所述API对应的SQL语句;
和/或,
记录执行所述可执行SQL语句使用的时间;
和/或,
记录读取所述数据库的次数、写入所述数据库的次数、读取所述本地缓存的次数和写入所述本地缓存的次数。
本发明实施例第二方面公开了一种底层数据的处理***,所述底层数据的处理***基于Java底层框架建立,所述***包括:
API接口单元,用于获取调用方的底层数据操作请求,所述底层数据操作请求包括确定API的指示信息和需要执行的指令信息;
处理单元,用于基于所述确定API的指示信息,获得与所述API对应的SQL语句,所述API对应的SQL语句为预先设置并存储于本地缓存中的,基于所述需要执行的指令信息,对所述API对应的SQL语句进行拼接,获得可执行SQL语句,执行所述可执行SQL语句,获得执行结果,将所述执行结果返回所述调用方。
可选的,所述用于基于所述确定API的指示信息,获得与所述API对应的SQL语句的处理单元,包括:
创建模块,用于创建每一个API所使用的SQL语句;
封装模块,用于将所述每一个API所使用的SQL语句都封装成MAP对象;
存储模块,用于将所述MAP对象存储于本地缓存,所述本地缓存包括Redis缓存、Memcached缓存或JVM缓存。
可选的,所述用于基于所述确定API的指示信息,获得与所述API对应的SQL语句的处理单元,包括:
第一获取模块,用于所述确定API的指示信息,从所述本地缓存中获得与所述指示信息对应的MAP对象;
第二获取模块,用于基于所述MAP对象,获得所述API对应的SQL语句。
可选的,所述***还包括:
记录单元,用于记录所述API对应的SQL语句,和/或记录执行所述可执行SQL语句使用的时间,和/或记录读取所述数据库的次数、写入所述数据库的次数、读取所述本地缓存的次数和写入所述本地缓存的次数。
基于上述本发明实施例提供的一种底层数据的处理方法及***,所述方法包括:获取调用方的底层数据操作请求,底层数据操作请求包括确定API的指示信息和需要执行的指令信息。基于确定API的指示信息,获得与API对应的SQL语句,API对应的SQL语句为预先设置并存储于本地缓存中的。基于需要执行的指令信息,对API对应的SQL语句进行拼接,获得可执行SQL语句。执行可执行SQL语句,获得执行结果。将执行结果返回调用方。基于本发明提供的方案中,通过提供多种API、不同的缓存策略和读写分离策略,为用户提供了全面、高效和快速处理底层数据的服务,提高底层数据的处理效率和速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种底层数据的处理方法流程图;
图2为本发明实施例提供的将预设的SQL语句预先存储于本地缓存中的方法流程图;
图3为本发明实施例提供的基于确定API的指示信息,获得与所述API对应的SQL语句的流程图;
图4为本发明实施例提供的一种底层数据的处理***的结构框图;
图5为本发明实施例提供的一种底层数据的处理***的结构框图;
图6为本发明实施例提供的一种底层数据的处理***的结构框图;
图7为本发明实施例提供的一种底层数据的处理***的结构框图;
图8为本发明实施例提供的一种底层数据的处理***的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,在现有技术中,MyBatis和Hibernate仅能提供ORM功能,一方面,无法灵活自定义SQL,因此,无法满足互联网业务的所有场景要求。另一方面,缺少数据库读写分离策略和不支持分表功能,处理数据较为繁琐和效率低下。无法为用户提供全面、高效和快速处理底层数据的服务。
因此,本发明实施例公开的一种底层数据的处理方法及***,通过获取调用方的底层数据操作请求,底层数据操作请求包括确定API的指示信息和需要执行的指令信息。基于确定API的指示信息,获得与API对应的SQL语句,API对应的SQL语句为预先设置并存储于本地缓存中的。基于需要执行的指令信息,对API对应的SQL语句进行拼接,获得可执行SQL语句。执行可执行SQL语句,获得执行结果。将执行结果返回调用方。能通过提供多种API、不同的缓存策略和读写分离策略,为用户提供了全面、高效和快速处理底层数据的服务,提高底层数据的处理效率和速度。
上述涉及到的所述底层数据的处理***是基于Java底层框架建立的,包括用于支持底层数据进行数据通信和服务交互的多种类型的中间件,所述中间件至少包括Spring、JDBC、MySQL和Redis。
参考图1,示出了本发明实施例提供的一种底层数据的处理方法流程图,所述方法适用于底层数据的处理***,所述底层数据处理***基于Java底层框架建立,所述方法包括以下步骤:
步骤S101:获取调用方的底层数据操作请求。
在具体实现步骤S101的过程中,所述底层数据操作请求包括确定API的指示信息和需要执行的指令信息。所述指示信息的形式为SQL语句,所述执行信息用于指示所述操作请求需要调用哪种API,比如:调用请求为find+指令信息,则调用请求中的指示信息为find,所述指示信息指示所述操作请求需要调用的API为find接口。所述需要执行的指令信息包括:Map对象、和/或JavaBean等数据类型。具体数据类型由技术人员根据实际情况设置。需要说明的是,前述涉及到的find+指令信息仅仅是用于举例说明,具体的调用请求由技术人员根据实际情况使用。
需要说明的是,所述调用方包括但不仅限于Web层、和/或Service层等。
步骤S102:基于所述确定API的指示信息,获得与所述API对应的SQL语句。
在具体实现步骤S102的过程中,预先设置多个API,并创建每个API所使用的SQL语句,将每个API对应的SQL语句存储于本地缓存中。当接收到确定API的指示信息时,根据所述指示信息从本地缓存中获取所述API对应的SQL语句。需要说明的是,API个数的设置、API种类的设置和创建每个API所使用的SQL语句由技术人员根据实际情况进行设定。
步骤S103:基于所述需要执行的指令信息,对所述API对应的SQL语句进行拼接,获得可执行SQL语句。
步骤S104:执行所述可执行SQL语句,获得执行结果。
在具体实现步骤S104的过程中,通过JDBC中间件将所述可执行SQL语句传输到数据库中,并执行所述可执行SQL语句得到所述执行结果。需要说明的是,JDBC是一种用于执行SQL语句的Java API,能为多种关系数据库提供统一访问功能,即在访问不同类型数据库时不需要针对不同数据库编写不同的访问程序,只需要编写一个访问程序就可以访问不同类型的数据库。
需要说明的是,执行所述可执行SQL语句能得到一个以上的结果,这些结果的集合即为所述执行结果。为更好解释说明,下面通过过程A1-A3进行举例说明:
假设确定API的指示信息指示调用列表(List)接口,需要执行的指令信息为查找10个对象的内容。其中,List接口对应的SQL语句为预先设置并存储于本地缓存中的。
A1、从本地缓存中获取与所述List接口对应的SQL语句。
A2、基于所述指令信息,对所述List接口对应的SQL语句进行拼接,得到可以被执行的SQL语句。
A3、通过JDBC中间件将所述可以被执行的SQL语句传输到数据库中执行,得到所述10个对象的内容信息,所述10个对象的内容信息的集合为执行结果。
步骤S105:将所述执行结果返回所述调用方。
在具体实现步骤S105的过程中,将所述执行结果转换成预设数据类型。所述预设数据类型包括但不仅限于对象列表、和/或单个对象、和/或Map对象。将所述预设数据类型的执行结果返回所述调用方。为更好解释说明如何将所述执行结果转换成预设数据类型,结合上述过程A1-A3的具体举例内容,下面通过过程A4-A5进行举例说明:
A4、解析所述执行结果,得到解析信息。
A5、基于ORM功能,初始化已经预先加载的实体类映射的配置,将所述解析信息转换成对象列表数据类型。
需要说明的是,上述过程A4-A5涉及到的配置文件和数据类型仅仅是用于举例说明。
优选的,在执行步骤S101-S105的过程中,记录所述API对应的SQL语句,和/或记录执行所述可执行SQL语句使用的时间,和/或记录读取所述数据库的次数、写入所述数据库的次数、读取所述本地缓存的次数和写入所述本地缓存的次数。需要说明的是,具体需要记录的内容包括但不仅限于上述涉及的内容,具体需要记录的内容由技术人员根据实际情况进行设置。
在本发明实施例中,通过获取调用方的底层数据操作请求,底层数据操作请求包括确定API的指示信息和需要执行的指令信息。基于确定API的指示信息,获得与API对应的SQL语句,API对应的SQL语句为预先设置并存储于本地缓存中的。基于需要执行的指令信息,对API对应的SQL语句进行拼接,获得可执行SQL语句。执行可执行SQL语句,获得执行结果。将执行结果返回所述调用方。能通过提供多种API、不同的缓存策略和读写分离策略,为用户提供了全面、高效和快速处理底层数据的服务,提高底层数据的处理效率和速度。
上述图1公开的步骤S102中涉及到的所述API对应的SQL语句为预先设置并存储于本地缓存中,参考图2,示出了本发明实施例提供的将预设的SQL语句预先存储于本地缓存中的方法流程图,包括以下步骤:
步骤S201:创建每一个API所使用的SQL语句。
在具体实现步骤S201的过程中,通过FastJdbcDao类提供了整套软件开发者日常使用的底层交互API。需要说明的是,FastJdbcDao类是一种Java类。为更好的说明FastJdbcDao类提供了整套软件开发者日常使用的底层交互API,下面通过例子B1-B6解释说明软件开发者日常使用的底层交互API的类别:
B1、查找(Find)方法:可查找单个对象、指定数量对象、或全部对象。
B2、创建(Create)方法:创建单个对象。
B3、更新(Update)方法:更新单个对象并同步更新缓存数据。
B4、列表(List)方法:通过软件开发者的自定义SQL语句,获取满足条件的对象列表。
B5、分页(Page)方法:通过软件开发者自定义的SQL语句以及分页参数,获取指定数量指定页数的对象列表。
B6、计数(Count)方法:通过软件开发者自定义的SQL语句获取记录数量。
需要说明的是,上述例子B1-B6示出的6种API类型仅仅用于举例说明,本发明涉及的API种类包括但不仅限于上述例子B1-B6示出的6种API类型,具体种类由技术人员根据实际情况进行设置。
步骤S202:将所述每一个API所使用的SQL语句都封装成MAP对象。
在具体实现步骤S202的过程中,结合Spring框架,加载可扩展标记语言(Extensible Markup Language,xml)配置,使用ORM将所述每一个API所使用的SQL语句映射封装成与之对应的MAP对象。需要说明的是,所述xml配置,来自配置所述Spring框架所使用的配置文件和Java代码的注解。
步骤S203:将所述MAP对象存储于本地缓存。
在具体实现步骤S203的过程中,所述本地缓存包括Redis缓存、Memcached缓存或JVM缓存。具体选择使用哪种缓存策略,由技术人员根据实际情况进行设置。
在本发明实施例中,通过获取调用方的底层数据操作请求,底层数据操作请求包括确定API的指示信息和需要执行的指令信息。基于确定API的指示信息,获得与API对应的SQL语句,API对应的SQL语句为预先设置并存储于本地缓存中的。基于需要执行的指令信息,对API对应的SQL语句进行拼接,获得可执行SQL语句。执行可执行SQL语句,获得执行结果。将执行结果返回所述调用方。能通过提供多种API、不同的缓存策略和读写分离策略,为用户提供了全面、高效和快速处理底层数据的服务,提高底层数据的处理效率和速度。
上述图1公开的步骤S102中涉及到的基于所述确定API的指示信息,获得与所述API对应的SQL语句,参考图3,示出了本发明实施例提供的基于所述确定API的指示信息,获得与API对应的SQL语句的流程图,包括以下步骤:
步骤S301:基于所述确定API的指示信息,从所述本地缓存中获得与所述指示信息对应的MAP对象。
在具体实现步骤S301的过程中,本地缓存中存储的MAP对象的内容参见上述图2各个步骤示出的对应的内容。根据所述指示信息,从本地缓存中存储的所有MAP对象获取与所述指示信息对应的MAP对象。
步骤S302:基于与所述指示信息对应的MAP对象,获得所述API对应的SQL语句。
在具体实现步骤S302的过程中,结合图2各个步骤示出的内容可知,每个MAP对象都对应一个API所使用的SQL语句。因此,先根据所述指示信息获得对应的MAP对象,再根据所述MAP对象获得所述API对应的SQL语句。为更好解释说明,下面通过例子C1-C6进行举例说明如何获得API对应的SQL语句。
C1、若所述指示信息指示所述API包括Find接口,根据所述指示信息获得与所述Find接口对应的MAP对象,根据所述MAP对象获得与所述Find接口对应的SQL语句。
C2、若所述指示信息指示所述API包括Create接口,根据所述指示信息获得与所述Create接口对应的MAP对象,根据所述MAP对象获得与所述Create接口对应的SQL语句。
C3、若所述指示信息指示所述API包括Update接口,根据所述指示信息获得与所述Update接口对应的MAP对象,根据所述MAP对象获得与所述Update接口对应的SQL语句。
C4、若所述指示信息指示所述API包括List接口,根据所述指示信息获得与所述List接口对应的MAP对象,根据所述MAP对象获得与所述List接口对应的SQL语句。
C5、若所述指示信息指示所述API包括Page接口,根据所述指示信息获得与所述Page接口对应的MAP对象,根据所述MAP对象获得与所述Page接口对应的SQL语句。
C6、若所述指示信息指示所述API包括Count接口,根据所述指示信息获得与所述Count接口对应的MAP对象,根据所述MAP对象获得与所述Count接口对应的SQL语句。
需要说明的是,上述例子C1-C6示出的6种API类型仅仅用于举例说明,本发明涉及的API种类包括但不仅限于上述例子C1-C6示出的6种API类型,具体种类由技术人员根据实际情况进行设置。所述指示信息指示所述API至少包括一个接口类型,具体数量由技术人员根据实际情况进行设置。
在本发明实施例中,通过获取调用方的底层数据操作请求,底层数据操作请求包括确定API的指示信息和需要执行的指令信息。基于确定API的指示信息,获得与API对应的SQL语句,API对应的SQL语句为预先设置并存储于本地缓存中的。基于需要执行的指令信息,对API对应的SQL语句进行拼接,获得可执行SQL语句。执行可执行SQL语句,获得执行结果。将执行结果返回所述调用方。能通过提供多种API、不同的缓存策略和读写分离策略,为用户提供了全面、高效和快速处理底层数据的服务,提高底层数据的处理效率和速度。
与上述本发明实施例提供的一种底层数据的处理方法相对应,参考图4,本发明实施例还提供了一种底层数据的处理***的结构框图,包括:API接口单元401和处理单元402。
API接口单元401,用于获取调用方的底层数据操作请求,所述底层数据操作请求包括确定API的指示信息和需要执行的指令信息。具体内容参见上述本发明实施例图1公开的步骤S101相对应的内容。
处理单元402,用于基于所述确定API的指示信息,获得与所述API对应的SQL语句,所述API对应的SQL语句为预先设置并存储于本地缓存中的,基于所述需要执行的指令信息,对所述API对应的SQL语句进行拼接,获得可执行SQL语句,执行所述可执行SQL语句,获得执行结果,将所述执行结果返回所述调用方。具体内容参见上述本发明实施例图1公开的步骤S102-步骤S105相对应的内容。
在本发明实施例中,通过获取调用方的底层数据操作请求,底层数据操作请求包括确定API的指示信息和需要执行的指令信息。基于确定API的指示信息,获得与API对应的SQL语句,API对应的SQL语句为预先设置并存储于本地缓存中的。基于需要执行的指令信息,对API对应的SQL语句进行拼接,获得可执行SQL语句。执行可执行SQL语句,获得执行结果。将执行结果返回所述调用方。能通过提供多种API、不同的缓存策略和读写分离策略,为用户提供了全面、高效和快速处理底层数据的服务,提高底层数据的处理效率和速度。
结合图4,参考图5,本发明实施例示出了一种底层数据的处理***的结构框图,所述用于基于所述确定API的指示信息,获得与所述API对应的SQL语句的处理单元402,包括:
创建模块4021,用于创建每一个API所使用的SQL语句。具体内容参见上述本发明实施例图2公开的步骤S201对应的内容。
封装模块4022,用于将所述每一个API所使用的SQL语句都封装成MAP对象。具体内容参见上述本发明实施例图2公开的步骤S202对应的内容。
存储模块4023,用于将所述MAP对象存储于本地缓存。
其中,所述本地缓存包括Redis缓存、Memcached缓存或JVM缓存。具体内容参见上述本发明实施例图2公开的步骤S203对应的内容。
在本发明实施例中,通过获取调用方的底层数据操作请求,底层数据操作请求包括确定API的指示信息和需要执行的指令信息。基于确定API的指示信息,获得与API对应的SQL语句,API对应的SQL语句为预先设置并存储于本地缓存中的。基于需要执行的指令信息,对API对应的SQL语句进行拼接,获得可执行SQL语句。执行可执行SQL语句,获得执行结果。将执行结果返回所述调用方。能通过提供多种API、不同的缓存策略和读写分离策略,为用户提供了全面、高效和快速处理底层数据的服务,提高底层数据的处理效率和速度。
结合图5,参考图6,本发明实施例示出了一种底层数据的处理***的结构框图,用于基于所述确定API的指示信息,获得与所述API对应的SQL语句的处理单元402,包括:
第一获取模块4024,用于所述确定API的指示信息,从所述本地缓存中获得与所述指示信息对应的MAP对象。具体内容参见上述本发明实施例图3公开的步骤S301相对应的内容。
第二获取模块4025,用于基于所述MAP对象,获得所述API对应的SQL语句。具体内容参见上述本发明实施例图3公开的步骤S302相对应的内容。
在本发明实施例中,通过获取调用方的底层数据操作请求,底层数据操作请求包括确定API的指示信息和需要执行的指令信息。基于确定API的指示信息,获得与API对应的SQL语句,API对应的SQL语句为预先设置并存储于本地缓存中的。基于需要执行的指令信息,对API对应的SQL语句进行拼接,获得可执行SQL语句。执行可执行SQL语句,获得执行结果。将执行结果返回所述调用方。能通过提供多种API、不同的缓存策略和读写分离策略,为用户提供了全面、高效和快速处理底层数据的服务,提高底层数据的处理效率和速度。
结合图6,参考图7,本发明实施例示出了一种底层数据的处理***的结构框图,所述将所述执行结果返回所述调用方的处理单元402,包括:
转换模块4026,用于基于对象关系映射ORM,将所述执行结果转换成预设数据类型,所述预设数据类型包括对象列表、和/或单个对象、和/或Map对象。
返回模块4027,用于将所述预设数据类型的执行结果返回所述调用方。
在本发明实施例中,通过获取调用方的底层数据操作请求,底层数据操作请求包括确定API的指示信息和需要执行的指令信息。基于确定API的指示信息,获得与API对应的SQL语句,API对应的SQL语句为预先设置并存储于本地缓存中的。基于需要执行的指令信息,对API对应的SQL语句进行拼接,获得可执行SQL语句。执行可执行SQL语句,获得执行结果。将执行结果返回所述调用方。能通过提供多种API、不同的缓存策略和读写分离策略,为用户提供了全面、高效和快速处理底层数据的服务,提高底层数据的处理效率和速度。
结合图7,参考图8,本发明实施例示出了一种底层数据的处理***的结构框图,所述***还包括:
记录单元403,用于记录所述API对应的SQL语句,和/或记录执行所述可执行SQL语句使用的时间,和/或记录读取所述数据库的次数、写入所述数据库的次数、读取所述本地缓存的次数和写入所述本地缓存的次数。
综上所述,本发明提供一种底层数据的处理方法及***,所述方法包括:获取调用方的底层数据操作请求,底层数据操作请求包括确定API的指示信息和需要执行的指令信息。基于确定API的指示信息,获得与API对应的SQL语句,API对应的SQL语句为预先设置并存储于本地缓存中的。基于需要执行的指令信息,对API对应的SQL语句进行拼接,获得可执行SQL语句。执行可执行SQL语句,获得执行结果。将执行结果返回调用方。基于本发明提供的方案中,通过提供多种API、不同的缓存策略和读写分离策略,为用户提供了全面、高效和快速处理底层数据的服务,提高底层数据的处理效率和速度。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种底层数据的处理方法,其特征在于,适用于底层数据的处理***,所述底层数据的处理***基于Java底层框架建立,所述方法包括:
获取调用方的底层数据操作请求,所述底层数据操作请求包括确定API的指示信息和需要执行的指令信息;
基于所述确定API的指示信息,获得与所述API对应的SQL语句,所述API对应的SQL语句为预先设置并存储于本地缓存中的;
基于所述需要执行的指令信息,对所述API对应的SQL语句进行拼接,获得可执行SQL语句;
执行所述可执行SQL语句,获得执行结果;
将所述执行结果返回所述调用方。
2.根据权利要求1所述的方法,其特征在于,所述API对应的SQL语句为预先设置并存储于本地缓存中的,包括:
创建每一个API所使用的SQL语句;
将所述每一个API所使用的SQL语句都封装成MAP对象;
将所述MAP对象存储于本地缓存,所述本地缓存包括Redis缓存、Memcached缓存或JVM缓存。
3.根据权利要求2所述的方法,其特征在于,所述基于所述确定API的指示信息,获得与所述API对应的SQL语句,包括:
基于所述确定API的指示信息,从所述本地缓存中获得与所述指示信息对应的MAP对象;
基于所述MAP对象,获得所述API对应的SQL语句。
4.根据权利要求1所述的方法,其特征在于,所述将所述执行结果返回所述调用方,包括:
基于对象关系映射ORM,将所述执行结果转换成预设数据类型,所述预设数据类型包括对象列表、和/或单个对象、和/或Map对象;
将所述预设数据类型的执行结果返回所述调用方。
5.根据权利要求3所述的方法,其特征在于,所述获得所述API对应的SQL语句,包括:
若所述API包括查找Find接口,获得与所述Find接口对应的SQL语句;
和/或,若所述API包括创建Create接口,获得与所述Create接口对应的SQL语句;
和/或,若所述API包括更新Update接口,获得与所述Update接口对应的SQL语句;
和/或,若所述API包括列表List接口,获得与所述List接口对应的SQL语句;
和/或,若所述API包括分页Page接口,获得与所述Page接口对应的SQL语句;
和/或,若所述API包括计数Count接口,获得与所述Count接口对应的SQL语句。
6.根据权利要求1-5中任一项所述的方法,其特征在于,还包括:
记录所述API对应的SQL语句;
和/或,
记录执行所述可执行SQL语句使用的时间;
和/或,
记录读取所述数据库的次数、写入所述数据库的次数、读取所述本地缓存的次数和写入所述本地缓存的次数。
7.一种底层数据的处理***,其特征在于,所述底层数据的处理***基于Java底层框架建立,所述***包括:
API接口单元,用于获取调用方的底层数据操作请求,所述底层数据操作请求包括确定API的指示信息和需要执行的指令信息;
处理单元,用于基于所述确定API的指示信息,获得与所述API对应的SQL语句,所述API对应的SQL语句为预先设置并存储于本地缓存中的,基于所述需要执行的指令信息,对所述API对应的SQL语句进行拼接,获得可执行SQL语句,执行所述可执行SQL语句,获得执行结果,将所述执行结果返回所述调用方。
8.根据权利要求7所述的***,其特征在于,所述用于基于所述确定API的指示信息,获得与所述API对应的SQL语句的处理单元,包括:
创建模块,用于创建每一个API所使用的SQL语句;
封装模块,用于将所述每一个API所使用的SQL语句都封装成MAP对象;
存储模块,用于将所述MAP对象存储于本地缓存,所述本地缓存包括Redis缓存、Memcached缓存或JVM缓存。
9.根据权利要求8所述的***,其特征在于,所述用于基于所述确定API的指示信息,获得与所述API对应的SQL语句的处理单元,包括:
第一获取模块,用于所述确定API的指示信息,从所述本地缓存中获得与所述指示信息对应的MAP对象;
第二获取模块,用于基于所述MAP对象,获得所述API对应的SQL语句。
10.根据权利要求7-9中任一项所述的***,其特征在于,所述***还包括:
记录单元,用于记录所述API对应的SQL语句,和/或记录执行所述可执行SQL语句使用的时间,和/或记录读取所述数据库的次数、写入所述数据库的次数、读取所述本地缓存的次数和写入所述本地缓存的次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811339891.8A CN109408529A (zh) | 2018-11-12 | 2018-11-12 | 一种底层数据的处理方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811339891.8A CN109408529A (zh) | 2018-11-12 | 2018-11-12 | 一种底层数据的处理方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109408529A true CN109408529A (zh) | 2019-03-01 |
Family
ID=65472649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811339891.8A Pending CN109408529A (zh) | 2018-11-12 | 2018-11-12 | 一种底层数据的处理方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408529A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199392A (zh) * | 2020-07-30 | 2021-01-08 | 上海泛微网络科技股份有限公司 | 缓存管理方法、装置和电子设备 |
CN113297246A (zh) * | 2020-06-16 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种数据的处理方法、计算设备及存储介质 |
CN114547067A (zh) * | 2022-01-20 | 2022-05-27 | 北京元年科技股份有限公司 | 基于通用查询结构的sql查询语句生成方法、装置及设备 |
CN115587095A (zh) * | 2022-10-08 | 2023-01-10 | 广州市玄武无线科技股份有限公司 | 数据库分表创建方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6012067A (en) * | 1998-03-02 | 2000-01-04 | Sarkar; Shyam Sundar | Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web |
CN104408073A (zh) * | 2014-10-31 | 2015-03-11 | 广州华多网络科技有限公司 | 数据操作方法和装置 |
CN107370786A (zh) * | 2017-06-02 | 2017-11-21 | 广州杰赛科技股份有限公司 | 一种基于微服务架构的通用信息管理*** |
-
2018
- 2018-11-12 CN CN201811339891.8A patent/CN109408529A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6012067A (en) * | 1998-03-02 | 2000-01-04 | Sarkar; Shyam Sundar | Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web |
CN104408073A (zh) * | 2014-10-31 | 2015-03-11 | 广州华多网络科技有限公司 | 数据操作方法和装置 |
CN107370786A (zh) * | 2017-06-02 | 2017-11-21 | 广州杰赛科技股份有限公司 | 一种基于微服务架构的通用信息管理*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297246A (zh) * | 2020-06-16 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种数据的处理方法、计算设备及存储介质 |
CN112199392A (zh) * | 2020-07-30 | 2021-01-08 | 上海泛微网络科技股份有限公司 | 缓存管理方法、装置和电子设备 |
CN114547067A (zh) * | 2022-01-20 | 2022-05-27 | 北京元年科技股份有限公司 | 基于通用查询结构的sql查询语句生成方法、装置及设备 |
CN115587095A (zh) * | 2022-10-08 | 2023-01-10 | 广州市玄武无线科技股份有限公司 | 数据库分表创建方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408529A (zh) | 一种底层数据的处理方法及*** | |
US7539985B2 (en) | Systems and methods for dynamic component versioning | |
US8812627B2 (en) | System and method for installation and management of cloud-independent multi-tenant applications | |
US7114148B2 (en) | Runtime services for network software platform | |
US7131110B2 (en) | Method and apparatus for generating a code bridge | |
EP0504085B1 (en) | Method and apparatus for accessing a relational database without exiting an object-oriented environment | |
JP3041528B2 (ja) | フアイル・システム・モジュール | |
TWI354900B (en) | Method, system, and computer program product for a | |
RU2571592C2 (ru) | Способ и система управления статическими структурами данных унаследованного программного обеспечения в средах динамических загрузчиков классов | |
CN110912724A (zh) | 一种基于参数驱动的自动业务编排方法及装置 | |
US9304742B2 (en) | Modifying a middleware | |
US8589394B2 (en) | System and method for dynamically configuring a multi-model node table | |
US8954461B2 (en) | Systems and methods for object to relational mapping extensions | |
US8201147B2 (en) | Generic XAD processing model | |
EP3567488A1 (en) | Materializable database objects in multitenant environments | |
JP6338713B2 (ja) | 柔軟性の高いメタデータの合成 | |
CN112698819A (zh) | 面向树化对象编程程序设计方法、装置及存储介质 | |
CN103631645A (zh) | 一种基于数字医疗的数字家庭中间件*** | |
US20070100848A1 (en) | Node index | |
CN113568603B (zh) | 组件对象创建及接口方法调用方法、终端及存储装置 | |
US20050010934A1 (en) | Native code isolation in a multi-tasking java virtual machine | |
EP2972837B1 (en) | Dynamic memory management for a virtual supercomputer | |
US11907176B2 (en) | Container-based virtualization for testing database system | |
CN109656881A (zh) | 一种基于fat16技术实现文件动态管理的方法和*** | |
US20050198057A1 (en) | Mechanism for efficiently implementing object model attributes |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190301 |