CN103064950B - 一种数据库客户端构建方法及系统 - Google Patents
一种数据库客户端构建方法及系统 Download PDFInfo
- Publication number
- CN103064950B CN103064950B CN201210581732.5A CN201210581732A CN103064950B CN 103064950 B CN103064950 B CN 103064950B CN 201210581732 A CN201210581732 A CN 201210581732A CN 103064950 B CN103064950 B CN 103064950B
- Authority
- CN
- China
- Prior art keywords
- database
- result
- module
- parameter set
- query
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据库客户端构建方法及系统,其中一种数据库客户端构建方法,具体包括以下步骤:步骤1:使用静态配置文档配置参数集;步骤2:将步骤1配置的参数集加载到内存数据库中;步骤3:对内存数据库中的参数集执行SQL结构化查询语句,得到查询结果,并将查询出的结果保存在变量中,完成数据库客户端构建。本发明的有益效果是:将本发明所述方法可以提高开发人员开发效率。开发人员不必再对新增查询参数进行修改代码,只需要在配置文件里配置即可;易于维护。以后需要修改或调整参数时,可以直接修改参数配置模板,不需要修改代码。
Description
技术领域
本发明涉及一种数据库客户端构建方法及系统。
背景技术
目前通过PROC连接ORACLE数据库应用开发现状:
1)数据库客户端应用开发流程如下:
a.通过PROC提供的连接数据库方式接到数据库。例如EXEC SQL结构化查询CONNECT:dbuser IDENTIFIED BY:dbpswd USING:dbname
b.分析入参并构建需要执行的SQL结构化查询语句。通过PROC提供的执行SQL结构化查询语句方式执行SQL结构化查询语句。例如:
EXEC SQL结构化查询PREPARE cmd_SQL结构化查询FROM:tmpSQL结构化查询;
EXEC SQL结构化查询DECLARE cur_cmd CURSOR FOR cmd_SQL结构化查询;
EXEC SQL结构化查询OPEN cur_cmd;
当执行完SQL结构化查询语句后,使用PROC提供的方式,把查询出的数据赋值给变量程序中的变量。例如:
EXEC SQL结构化查询FETCH cur_cmd INTO:cmd id。
发明内容
本发明所要解决的技术问题是,针对现有技术的不足,提供可支持通过配置SQL结构化查询语句和程序处理流程,实现对数据库操作的任何功能的数据库客户端构建方法。
本发明解决上述技术问题的技术方案如下:一种数据库客户端构建方法,具体包括以下步骤:
步骤1:使用静态配置文档配置参数集;
步骤2:将配置的参数集加载到内存数据库中;
步骤3:对内存数据库中的参数集执行SQL结构化查询语句,得到查询结果,并将查询出的结果保存在变量中,完成数据库客户端构建。
本发明的有益效果是:将本发明所述方法可以提高开发人员开发效率。开发人员不必再对新增查询参数进行修改代码,只需要在配置文件里配置即可;易于维护。以后需要修改或调整参数时,可以直接修改参数配置模板,不需要修改代码。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤3具体包括以下具体步骤:
步骤3.1:执行SQL结构化查询语句,得到查询结果;
步骤3.2:遍历查询结果,判断是否有有效的查询结果,如果有,进行步骤3.3;否则,跳出遍历,结束客户端构建;
步骤3.3:申请变量保存查询结果,返回执行步骤3.2。
本发明所要解决的技术问题是,针对现有技术的不足,提供可支持通过配置SQL结构化查询语句和程序处理流程,实现对数据库操作的任何功能的数据库客户端构建系统。
本发明解决上述技术问题的技术方案如下:一种数据库客户端构建系统,包括静态配置模块、内存加载模块、内存数据库和查询模块;
所述静态配置模块用于使用静态配置文档配置参数集,并将所述配置后的参数集发生制内存加载模块;
所述内存加载模块用于接收静态配置模块发送至的参数集,并将所述参数集加载到内存数据库中;
所述内存数据库用于保存内存加载模块保存的数据,接受查询模块发送至的查询指令,并按照所述指令发送相应数据至查询模块;
所述查询模块发送查询指令至内存数据库,并将内存数据库反馈的数据保存在变量中。
本发明的有益效果是:将本发明所述系统可以提高开发人员开发效率,开发人员不必再对新增查询参数进行修改代码,只需要在配置文件里配置即可;易于维护,以后需要修改或调整参数时,可以直接修改参数配置模板,不需要修改代码。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述内存数据库接收查询模块发送查询指令后,内存数据库执行SQL结构化查询语句,并遍历查询出的结果,判断是否存在查询结果后,进行保存并继续进行遍历查询结果或执行其他操作。
进一步,所述判断是否有有效的查询结果,存在两种情况,如果有,则申请变量保存查询结果;否则,跳出遍历,执行其他操作。
所谓遍历(Traversal),是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。遍历在二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。当然遍历的概念也适合于多元素集合的情况,如数组。
附图说明
图1为本发明具体实施例1所述的一种数据库客户端构建方法的流程图;
图2为本发明具体实施例2所述的一种数据库客户端构建系统的结构图。
附图中,各标号所代表的部件列表如下:
1、静态配置模块,2、内存加载模块,3、内存数据库,4、查询模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本发明具体实施例1所述的一种数据库客户端构建方法,具体包括以下步骤:
步骤1:使用静态配置文档配置参数集;
步骤2:将配置的参数集加载到内存数据库中;
步骤3:对内存数据库中的参数集执行SQL结构化查询语句,得到查询结果;
步骤4:遍历查询结果,判断是否有有效的查询结果,如果有,进行步骤5;否则,跳出遍历,结束客户端构建;
步骤5:申请变量保存查询结果,返回执行步骤4。
如图2所示,本发明具体实施例2所述的一种数据库客户端构建系统,包括静态配置模块1、内存加载模块2、内存数据库3和查询模块4;所述静态配置模块1用于使用静态配置文档配置参数集,并将所述配置后的参数集发生制内存加载模块2;所述内存加载模块2用于接收静态配置模块1发送至的参数集,并将所述参数集加载到内存数据库3中;所述内存数据库3用于保存内存加载模块保存的数据,接受查询模块4发送至的查询指令,并按照所述指令发送相应数据至查询模块4;所述查询模块4发送查询指令至内存数据库3,并将内存数据库3反馈的数据保存在变量中。
所述内存数据库3接收查询模块4发送查询指令后,内存数据库3执行SQL结构化查询语句,并遍历查询出的结果,判断是否存在查询结果后,进行保存并继续进行遍历查询结果或执行其他操作。
所述判断是否有有效的查询结果,存在两种情况,如果有,则申请变量保存查询结果;否则,跳出遍历,执行其他操作。
山西移动全业务项目中,因为需要数据同步的数据比较多,并且表和表的结构基本不相同使用原来数据库同步程序,每新增加一张表的同步,都需要重新开发程序或者修改程序,才可以进行服用。使用配置实现自适应的数据库客户端适配器开发后,使数据同步工作变得简单高效。
山西移动的配置文件为dateSynchAdapter.h。内容如下:列举部分)
[CRM_TO_BOSS_1]
#源表数据库配置标识
S_DBSERV=CRM_DB
#源表名称
S_TABLE=wsndcmdday
#目标表数据库配置标识
D_DBSERV=BOSS_DB
#目标表名称
D_CTABLE=wsndcmddayhis
#是否修改源表数据状态表示,如果需要修改源表数据状态,UPDATE_SQL结构化查询和UPDATE_ERR_SQL结构化查询必须配置
UP_FLAG=1
#是否同时启动清理进程
MOB_FLAG=1
#是否移历史表
HIS_FLAG=1
#是否移错误表
ERR_FLAG=1
#是否删除源表数据表示,如果需要删除,DELETE_SQL结构化查询必须配置,1表示移动到历史或者错误一条数据,就删除一条数据,根据表唯一主键删除数据,2表示直接删除符合SQL结构化查询语句条件的数据,不需要唯一主键,1和2的SQL结构化查询语句不同,配置时需要注意
DEL_FLAG=2
#历史表是否分年月表,0表示不分年月表,1表示YYYYMM,2表示YYMM,3表示MM
HIS_YM_FLAG=0
#错误表是否分年月表
ERR_YM_FLAG=0
#查询源表SQL结构化查询语句
SELE_SQL结构化查询=SELECT COMMAND_ID,HLR_CODE,COMMAND_CODE,COMMAND_ORDER,ID_NO,SM_CODE,PHONE_NO,NEW_PHONE,IMSI_NO,NEW_IMSI,OTHER_CHAR,OP_CODE,TOTAL_DATE,TO_CHAR(OP_TIME),LOGIN_NO,LOGIN_ACCEPT,TO_CHAR(REQUEST_TIME),BUSINESS_STATUS,SEND_STATUS,TO_CHAR(SEND_TIME),GROUP_ID,ORG_ID,ACK_CODE,TO_CHAR(ACK_TIME),ACK_INFO FROM wsndcmdday WHERE SEND_STATUS='2'AND imsi_no !=″AND ROWNUM<=200 ORDER BY COMMAND_ID
#插入目标表SQL结构化查询语句
INSERT_SQL结构化查询=INSERT INTO wsndcmddayhis(COMMAND_ID,HLR_CODE,COMMAND_CODE,COMMAND_ORDER,ID_NO,SM_CODE,PHONE_NO,NEW_PHONE,IMSI_NO,NEW_IMSI,OTHER_CHAR,OP_CODE,TOTAL_DATE,OP_TIME,LOGIN_NO,LOGIN_ACCEPT,REQUEST_TIME,BUSINESS_STATUS,SEND_STATUS,SEND_TIME,GROUP_ID,ORG_ID,ACK_CODE,ACK_TIME,ACK_INFO)values(:v1,:v2,:v3,:v4,:v5,:v6,:v7,:v8,:v9,:v10,:v11,:v12,:v13,:v14,:v15,:v16,:v17,:v18,:v19,:v20,:v21,:v22,:v23,:v24,:v25)
#修改同步成功的源表数据状态SQL结构化查询语句
UPDATE_SQL结构化查询=UPDATE WSNDCMDDAY SET SEND_STATUS='8'WHERE COMMAND_ID=:v0
#修改同步失败的源表数据状态SQL结构化查询语句
UPDATE_ERR_SQL结构化查询=UPDATE WSNDCMDDAY SET SEND_STATUS='9'WHERE COMMAND_ID=:v0
#删除源表数据SQL结构化查询语句
#DELETE_SQL结构化查询=DELETE WSNDCMDDAY WHERE COMMAND_ID=:v0AND HLR_CODE=:v1
DELETE_SQL结构化查询=DELETE WSNDCMDDAY WHERE SEND_STATUS IN('8','9')
可以看出,在配置文件中,不仅定义了查询的SQL结构化查询语句,还有修改,删除,等操作的SQL结构化查询语句,以后就算表结构发生了变化,不需要改动代码,只需要修改配置文件里面的SQL结构化查询语句就可以了。
并且如果以后有新需求的话,根据流程,只需要修改配置文件就可以做到新需求的开发,也不需要改动或者新开发代码。极大的减轻了程序员的开发工作量和维护工作量
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种数据库客户端构建方法,其特征在于,具体包括以下步骤:
步骤1:使用静态配置文档配置参数集;
步骤2:将配置的参数集加载到内存数据库中;
步骤3:对内存数据库中的参数集执行SQL结构化查询语句,得到查询结果,并将查询出的结果保存在变量中,完成数据库客户端构建;
所述步骤3具体包括以下具体步骤:
步骤3.1:执行SQL结构化查询语句,得到查询结果;
步骤3.2:遍历查询结果,判断是否有有效的查询结果,如果有,进行步骤3.3;否则,跳出遍历,结束客户端构建;
步骤3.3:申请变量保存查询结果,返回执行步骤3.2。
2.一种数据库客户端构建系统,其特征在于,包括静态配置模块、内存加载模块、内存数据库和查询模块;
所述静态配置模块用于使用静态配置文档配置参数集,并将所述配置后的参数集发生制内存加载模块;
所述内存加载模块用于接收静态配置模块发送至的参数集,并将所述参数集加载到内存数据库中;
所述内存数据库用于保存内存加载模块保存的数据,接受查询模块发送至的查询指令,并按照所述指令发送相应数据至查询模块;
所述查询模块发送查询指令至内存数据库,并将内存数据库反馈的数据保存在变量中;
所述内存数据库接收查询模块发送查询指令后,内存数据库执行SQL结构化查询语句,并遍历查询出的结果,判断是否存在查询结果后,进行保存并继续进行遍历查询结果或执行其他操作;
所述判断是否有有效的查询结果,存在两种情况,如果有,则申请变量保存查询结果;否则,跳出遍历,执行其他操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210581732.5A CN103064950B (zh) | 2012-12-27 | 2012-12-27 | 一种数据库客户端构建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210581732.5A CN103064950B (zh) | 2012-12-27 | 2012-12-27 | 一种数据库客户端构建方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103064950A CN103064950A (zh) | 2013-04-24 |
CN103064950B true CN103064950B (zh) | 2016-09-14 |
Family
ID=48107580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210581732.5A Active CN103064950B (zh) | 2012-12-27 | 2012-12-27 | 一种数据库客户端构建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103064950B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789377B (zh) * | 2017-03-24 | 2020-09-29 | 聚好看科技股份有限公司 | 网元集群的服务参数更新方法 |
CN112667659B (zh) * | 2020-12-23 | 2024-04-02 | 平安普惠企业管理有限公司 | 特征加工方法及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183363A (zh) * | 2006-11-13 | 2008-05-21 | 中兴通讯股份有限公司 | 一种利用系统表结构统一配置管理内存数据库的方法 |
CN101329685A (zh) * | 2008-07-30 | 2008-12-24 | 烽火通信科技股份有限公司 | 一种家庭网关上内存数据库的实现方法 |
CN101976251A (zh) * | 2010-10-26 | 2011-02-16 | 国电南瑞科技股份有限公司 | 用电信息采集终端嵌入式数据库管理模型的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8730056B2 (en) * | 2008-11-11 | 2014-05-20 | Itron, Inc. | System and method of high volume import, validation and estimation of meter data |
-
2012
- 2012-12-27 CN CN201210581732.5A patent/CN103064950B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183363A (zh) * | 2006-11-13 | 2008-05-21 | 中兴通讯股份有限公司 | 一种利用系统表结构统一配置管理内存数据库的方法 |
CN101329685A (zh) * | 2008-07-30 | 2008-12-24 | 烽火通信科技股份有限公司 | 一种家庭网关上内存数据库的实现方法 |
CN101976251A (zh) * | 2010-10-26 | 2011-02-16 | 国电南瑞科技股份有限公司 | 用电信息采集终端嵌入式数据库管理模型的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103064950A (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2707230T3 (es) | Prueba del ciclo de vida | |
CN104965735B (zh) | 用于生成升级sql脚本的装置 | |
US10387422B2 (en) | Incremental and collocated redistribution for expansion of online shared nothing database | |
US20210365577A1 (en) | Application-provisioning framework for database platforms | |
DE602006014971D1 (de) | Zaunmechanismus für client-fehler zur umzäunung von netzwerkdateisystemdaten in einer host-cluster-umgebung | |
US20150363452A1 (en) | Hybrid database upgrade migration | |
WO2016019772A1 (zh) | 一种屏蔽异构数据源的方法及装置 | |
CN104991955A (zh) | 一种自动构建模板库的方法及系统 | |
CN103425630A (zh) | 协同系统构架及其一致性维护方法 | |
US20200319920A1 (en) | Method and system for migrating xml schemas in application releases | |
CN107368578B (zh) | 一种快速生成es查询语句的方法及系统 | |
US20120078877A1 (en) | Multi-source searching in a data driven application | |
CN103064950B (zh) | 一种数据库客户端构建方法及系统 | |
CN105678459A (zh) | 一种基于元数据库的业务流程定制模型 | |
CN107341210A (zh) | Hadoop平台下的C‑DBSCAN‑K聚类算法 | |
CN110806907A (zh) | 一种容器化可配置的数据库执行脚本管理系统及方法 | |
CN106599167A (zh) | 一种支持增量升级数据库的系统和方法 | |
Sanchez et al. | Bigraphical modelling of architectural patterns | |
WO2015183241A1 (en) | Distributed compilation of statically typed languages | |
CN105302602A (zh) | 一种云平台应用程序平滑在线升级方法 | |
CN1780236A (zh) | 一种电信智能业务的通用测试系统及方法 | |
US10795880B2 (en) | System and method for inter-program file control communication | |
CN107844508A (zh) | 一种企业业务流程数据管理方法 | |
CN106502842A (zh) | 数据恢复方法及系统 | |
CZ2017124A3 (cs) | Způsob přenášení struktur a datových souborů mezi zdrojovým a cílovým systémem a systém k jeho provádění |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |