一种json格式数据的查询管理系统的制作方法_2

文档序号:9646598阅读:来源:国知局
] 在本发明实施例中,数据库中存储的JS0N格式数据视图可以显示出对应的JS0N 格式数据,JS0N格式数据视图可以是一条查询SQL语句,用于显示一个或多个表或其他视 图中的相关数据,该JS0N格式数据视图将一个查询的结果作为一个表来使用,因此JS0N 格式数据视图可以被看作是存储的查询或一个虚拟表,JS0N格式数据视图来源于数据表, JS0N格式数据视图本身就是一个查询结果,因此当应用客户端发起查询请求时,数据库服 务器可以向该应用客户端返回JS0N格式数据视图对应的JS0N格式数据,免去了现有技术 中应用服务器的组装JS0N格式字符串的工作量,本发明实施例中可以将应用服务器作为 一个纯粹的转发工具,从而降低了应用服务器的负荷,提高应用客户端查询JS0N格式数据 的查询效率。
[0016] 在本发明实施例中,可以采用基于对关系数据库中的数据查询结果的一种动态转 换,使得客户端需要的JS0N格式可以按照用户自定义的数据格式进行动态转换。通过数据 库中存储的JSON格式数据视图对特定的数据表进行数据格式的不同定义,可以实现对同 一个数据表的不同格式的展示,满足用户通过应用客户端查询多个JS0N格式数据的需要。
[0017] 在现有技术中,由于应用服务器是根据每次应用客户端的查询请求来对数据库中 查询到的列表数据进行JS0N格式字符串的组装,因此应用服务器对JS0N格式的组装是固 定不变的,如果前端的应用客户端需要的JS0N格式需要调整时,应用服务器还需要新增并 修改JS0N组装算法,随着系统功能的不断增加,所需JS0N的组装格式也会随着增加,这不 利于系统后期的功能维护。为了进一步的解决该问题,在本发明的一些实施例中,数据库服 务器,还用于当应用客户端需要的JS0N格式调整之后,根据调整后的JS0N格式对数据库中 的JS0N格式数据视图进行修改,并在数据库中存储修改后的JS0N格式数据视图。
[0018] 在本发明实施例中,可以采用基于对关系数据库中的数据查询结果的一种动态转 换,使得客户端需要的JS0N格式可以按照用户自定义的数据格式进行动态转换。如果前端 的应用客户端如果需要对JS0N的格式进行调整时,数据库服务器管理的数据库中的数据 代码无需进行调整,只要对数据库中的相应的JS0N格式数据视图进行修改即可,因此本发 明实施例可以实现JS0N格式配置和业务代码的脱藕,极大地提高了系统的可维护性。
[0019] 在本发明的一些实施例中,数据库服务器在得到JS0N格式数据视图时,数据库服 务器具体可以通过如下方式来实现。数据库服务器具体用于从数据库中的数据表中提取出 符合预置条件的数据构成数据模型;使用数据库中的行转列函数将提取到的数据模型创建 为数据表对应的JS0N格式数据视图。其中,本发明实施例中数据库中的数据表先按照预置 条件来筛选数据,将筛选出的数据构成数据模型,例如预置条件可以是需要从数据表选择 出的内容字段,具体根据需要来预先配置,不满足预置条件的内容可以从数据表中过滤掉, 从而可以获取到一个数据模型。在数据库中通常存在行转列函数,例如,WMSYS.WM_C0NCAT, 或sys_connect_by_path等都可以完成对数据模型中的数据转换。通过对数据模型中的数 据按照表的结构和排列顺序的转换,可以创建出JS0N格式数据视图。
[0020] 进一步的,在本发明前述实施例中描述的JS0N格式数据的查询管理系统中,数据 库中的数据表具体为字典表。例如,数据库具体为Oracle数据库时,上述的数据表可以指 的是字典表。字典表是用户可以访问的记录数据库和应用程序元数据的目录。字典表在整 个应用里面所占的数据量不大但却是操作最为频繁的一张表,将字典表转换为JS0N格式 数据视图,可以减少应用服务器在应用客户端的每次查询时都需要组装JS0N格式数据的 过程。
[0021] 在本发明的一些实施例中,应用客户端,具体用于采用异步AJAX的交互方式将 JS0N格式数据查询请求发送给应用服务器。其中,AJAX是"AsynchronousJavascript AndXML"(异步JavaScript和XML),是一种创建交互式网页应用的查询请求方式,通过异 步AJAX方式,应用客户端和应用服务器之间可以实现JS0N格式数据查询请求的发送与接 收。需要说明的是,在本发明实施例中应用客户端采用异步AJAX的方式来发送查询请求只 是一种优选的实现方式,在本发明的另一些实施例中,应用客户端还可以采用其他的请求 发送方式,例如还可以采用JQuery+webservice的方式来完成查询请求的发送,具体实现 方式可以结合应用场景来确定。
[0022] 通过前述对本发明的举例说明可知,在本发明实施例提供的JS0N格式数据的查 询管理系统中,由于数据库服务器可以根据应用客户端需要的JS0N格式对数据库中的数 据表进行数据存储格式转换,得到数据表对应的JSON格式数据视图,因此当应用客户端发 起查询请求时,应用服务器根据该查询请求向数据库服务器发送SQL查询语句,数据库服 务器可以根据SQL查询语句获取到JS0N格式数据视图显示的JS0N格式数据,应用服务器 只需要将数据库服务器返回的JS0N格式数据转发给应用客户端即可,而无需应用服务器 在每次查询时进行JS0N格式的组装,避免了应用服务器的组装JS0N格式数据的工作量,并 且数据库服务器只需要数据库自身的数据存储格式的转换,而且数据库中的转换只要一次 性转换即可,无需对每次的查询请求都进行单独的转换,在保持应用客户端的查询方式不 变的情况下实现对数据库数据的JS0N格式查询显示,不需要应用服务器根据每次查询请 求进行JS0N格式的字符串组装,提高查询JS0N格式数据的查询效率。
[0023] 为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来 进行具体说明。
[0024] 请参阅图2所示,为本发明实施例提供JS0N格式数据的查询管理系统中查询JS0N 格式数据的过程示意图。以对关系数据库中的数据查询为例进行说明。关系数据库中对查 询数据的处理中有一个行转列的操作,例如关系数据库可以是Oracle、MSSQL、MySql等,在 这些数据库中都可以通过完成行转列操作。本发明实施例以Oracle数据库的字典表操作 方式阐述一下数据的查询转换流程,其他关系数据库可以根据以下流程完成相应的数据查 询结果。
[0025] 在大型数据库中,需要管理各种各样的类型数据(如商品类型、游戏类型等等)。对 于这些类型的管理,如果为每一种类型都建立一张表去维护,那工作量是可想而之大,并且 还需要去了解每一个类型表的名字,以实现多个类型表之间的关联。因此需要一种数据模 型以完成对多种多样类型管理的需求,这种数据模型就是字典表。
[0026] 字典表在整个应用里面所占的数据量不大,但却是操作最为频繁的一张表,由于 前端需求的数据格式大部分都是JS0N格式,而现有技术中从关系数据库中查询的数据都 需要应用服务器的二次转换后才可以满足前端的应用客户端的要求,导致应用服务器需要 对数据库中同样的列表数据进行频繁的转换操作,才能适应JS0N格式的需求,而频繁的转 换操作会浪费系统的性能。
[0027] 本发明实施例通过数据库自身的数据存储格式的转换来代替应用服务器中的数 据转换,而且数据库中的转换只要一次性转换即可,无需对每次的查询操作进行单独的转 换。避免了现有技术中应用服务器需要进行数据转换的工作量,而且本身的操作对数据库 服务器影响也是一次性的,和前端应用的请求数量没有正相关的关系。
[0028] 本发明实施例提供的JS0N格式数据的查询管理系统中,用Oracle数据库作为操 作事例,其他关系数据库按照以下步骤都可以实现相应的效果。分析数据库的字典表的表 结构,提取符合条件的字典类型、字典名称和对应的字典值等数据模型,可以包括如下几个 步骤: 1)、假设数据库中的字典表TBL_CFG_DICT结构如图3所示,为本发明实施例提供的数 据库中字典表的一种查询过程举例示意图。创建视图时内容字段只要DICTTYPE、DICTNAME、 DICTVALUE等字段,其他作为过滤和排序用。数据查询出的结果如下表1所示:
2) 、使用Oracle数据库自带的行转列函数丽
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1