CN102819588A - 一种应用于Oracle数据库的动态数据处理方法 - Google Patents

一种应用于Oracle数据库的动态数据处理方法 Download PDF

Info

Publication number
CN102819588A
CN102819588A CN2012102769052A CN201210276905A CN102819588A CN 102819588 A CN102819588 A CN 102819588A CN 2012102769052 A CN2012102769052 A CN 2012102769052A CN 201210276905 A CN201210276905 A CN 201210276905A CN 102819588 A CN102819588 A CN 102819588A
Authority
CN
China
Prior art keywords
dao
data
parameter
data processing
objects
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
Application number
CN2012102769052A
Other languages
English (en)
Inventor
刘启铨
董春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTEsoft Technology Co Ltd
Original Assignee
ZTEsoft Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTEsoft Technology Co Ltd filed Critical ZTEsoft Technology Co Ltd
Priority to CN2012102769052A priority Critical patent/CN102819588A/zh
Publication of CN102819588A publication Critical patent/CN102819588A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种应用于Oracle数据库的动态数据处理方法,它包括以下步骤:创建数据访问对象即DAO对象,包括数据插入、更新和删除;设定连接的数据库Oracle;设置DAO对象对应的结构化查询语句即SQL语句;设置各SQL语句的相应绑定参数;执行动态数据处理,接收数据操作指令,将数据操作指令保存至相应DAO对象的缓存中;判断待处理的DAO对象是否需要继续插入数据,如果需要,则继续把数据插入到DAO对象为其分配的缓存中;否则,执行数据操作,并结束。本发明通过动态DAO技术,大幅降低系统的改造升级成本,降低人力资源的投入,而且提高系统的稳定性。

Description

一种应用于Oracle数据库的动态数据处理方法
技术领域
 本发明涉及数据访问对象即动态DAO技术,尤其是Oracle批量数据处理,具体地说是一种应用于Oracle数据库的动态数据处理方法。
 
背景技术
QuickMDB是一款内存数据库,数据存储在共享内存中,同时还可以同步到Oracle等文件数据库中。
由于QuickMDB自身要求的高效性,决定了数据同步的速度也必须很高。通常对于Oracle数据的访问,单条处理简单方便,但是速度仅有几百条/秒,显然无法满足性能方面的要求。Oracle提供了一套批量处理数据的接口,可以把同步速度提升至几千条/秒。   
这种批量处理数据的方式,就是ArrayBound技术,借此可以实现DAO即数据访问对象。
DAO方案中,如何把DAO应用到同步逻辑中,最通常的做法是,对于某个特定的应用,制定特定的DAO,优点是量身定制,速度会,使用简单。缺点就是应用一旦变化,DAO需要重新订制。对于一款内存数据库而言,事先无法知道应用如何使用,无法提前订制DAO,就必须寻找一套合适的方式,去动态实现DAO。
 
发明内容
本发明的目的是针对数据库同步问题中,只能定制DAO,应用一旦变化,DAO需要重新订制的问题,提出一种应用于Oracle数据库的动态数据处理方法。动态DAO技术,就是要解决目前DAO方案中,代码与SQL绑定的弊端,通过动态识别SQL和参数,消除DAO的业务关联,实现系统的高度灵活性,降低模块耦合度。
本发明的技术方案是:
一种应用于Oracle数据库的动态数据处理方法,它包括以下步骤:
(a)、创建数据访问对象即DAO对象,包括数据插入、更新和删除;
(b)、设定连接的数据库Oracle;
(c)、设置DAO对象对应的结构化查询语句即SQL语句;
(d)、设置各SQL语句的相应绑定参数;
(e)、执行动态数据处理,接收数据操作指令,将数据操作指令保存至相应DAO对象的缓存中;
(f)、判断待处理的DAO对象是否需要继续插入数据即接收数据操作指令,如果需要,则继续把各指令的SQL语句的相应参数插入到DAO对象为其分配的缓存中;否则,执行数据操作,并结束;
(g)、判断DAO对象处理量即数据处理量是否已达到设定阈值,如果达到,则执行批量操作,否则,返回步骤(e)。
本发明的步骤(d)中,各SQL语句的相应绑定参数均包括:参数名称即SQL变量名、参数类型、参数长度、参数的目标值和参数位置。
本发明的有益效果:
本发明实现动态DAO技术,解决目前DAO方案中,代码与SQL绑定的弊端,通过动态识别SQL和参数,消除DAO的业务关联,实现系统的高度灵活性,降低模块耦合度。
本发明能够把DAO的共性抽取出来,实际数据分成2种:整数(long long)、字符串(char/varchar),复杂的BLOB并没有出现,这能够有益于简化代码复杂度。对于ArrayBound技术,本发明中通过设定的两个参数实现1、DAO对应的SQL;2、需要绑定的参数。
本发明通过动态DAO技术,大幅降低系统的改造升级成本,降低人力资源的投入,而且提高系统的稳定性。
 
附图说明
图1是本发明的流程图。
 
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
如图1所示,一种应用于Oracle数据库的动态数据处理方法,它包括以下步骤:
(a)、创建数据访问对象即DAO对象,包括数据插入、更新和删除;
(b)、设定连接的数据库Oracle;
(c)、设置DAO对象对应的结构化查询语句即SQL语句;
(d)、设置各SQL语句的相应绑定参数;包括:参数名称即SQL变量名、参数类型、参数长度、参数的目标值和参数位置。
(e)、执行动态数据处理,接收数据操作指令,将数据操作指令保存至相应DAO对象的缓存中;
(f)、判断待处理的DAO对象是否需要继续插入数据即接收数据操作指令,如果需要,则继续把各指令的SQL语句的相应参数插入到DAO对象为其分配的缓存中;否则,执行数据操作,并结束;
(g)、判断DAO对象处理量即数据处理量是否已达到设定阈值,如果达到,则执行批量操作,否则,返回步骤(e)。
具体实施时:
1、首先设定连接的数据库,调用如下接口:
    Void SetDBLink(TOraDBDatabase* pDBLink);
2、设置对应的SQL语句,调用如下接口:
    int SetSQL(const char* pszSQL);
3、依次把参数设置进去,调用如下接口:
    int AddParameter(const TOCSDAOData & tData);
4、开始数据插入,调用如下接口:
    Void StartAddRecord();
5、插入整数或者字符串,,调用如下接口:
    Int AddRecord(int iPos, long long iValue);
    Int AddRecord(int iPos, const char* pszValue);
6、结束数据插入,调用如下接口:
    Void EndAddRecord();
7、所有数据插入完毕,执行批处理操作,调用如下接口:
    Int Execute();
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。

Claims (2)

1.一种应用于Oracle数据库的动态数据处理方法,其特征是它包括以下步骤:
(a)、创建数据访问对象即DAO对象,包括数据插入、更新和删除;
(b)、设定连接的数据库Oracle;
(c)、设置DAO对象对应的结构化查询语句即SQL语句;
(d)、设置各SQL语句的相应绑定参数;
(e)、执行动态数据处理,接收数据操作指令,将数据操作指令保存至相应DAO对象的缓存中;
(f)、判断待处理的DAO对象是否需要继续插入数据即接收数据操作指令,如果需要,则继续把各指令的SQL语句的相应参数插入到DAO对象为其分配的缓存中;否则,执行数据操作,并结束;
(g)、判断DAO对象处理量即数据处理量是否已达到设定阈值,如果达到,则执行批量操作,否则,返回步骤(e)。
2.根据权利要求1所述的应用于Oracle数据库的动态数据处理方法,其特征是所述的步骤(d)中,各SQL语句的相应绑定参数均包括:参数名称即SQL变量名、参数类型、参数长度、参数的目标值和参数位置。
CN2012102769052A 2012-08-06 2012-08-06 一种应用于Oracle数据库的动态数据处理方法 Pending CN102819588A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012102769052A CN102819588A (zh) 2012-08-06 2012-08-06 一种应用于Oracle数据库的动态数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012102769052A CN102819588A (zh) 2012-08-06 2012-08-06 一种应用于Oracle数据库的动态数据处理方法

Publications (1)

Publication Number Publication Date
CN102819588A true CN102819588A (zh) 2012-12-12

Family

ID=47303699

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012102769052A Pending CN102819588A (zh) 2012-08-06 2012-08-06 一种应用于Oracle数据库的动态数据处理方法

Country Status (1)

Country Link
CN (1) CN102819588A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259067A (zh) * 2020-01-21 2020-06-09 褚晶晶 一种基于Spring实现DAO接口的方法、装置及设备
CN112307121A (zh) * 2020-10-30 2021-02-02 中国平安人寿保险股份有限公司 基于Oracle的数据同步方法、装置及计算机设备
CN112527807A (zh) * 2019-09-18 2021-03-19 银联数据服务有限公司 一种数据结构操作方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1869991A (zh) * 2006-06-30 2006-11-29 南京联创科技股份有限公司 基于动态代理的数据访问对象模式的实现方法
CN101339559A (zh) * 2008-07-18 2009-01-07 北京航空航天大学 一种数据持久化实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1869991A (zh) * 2006-06-30 2006-11-29 南京联创科技股份有限公司 基于动态代理的数据访问对象模式的实现方法
CN101339559A (zh) * 2008-07-18 2009-01-07 北京航空航天大学 一种数据持久化实现方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
匿名: "Oracle动态SQL之DBMS SQL系统包的使用", 《WWW.WORLDUC.COM/BLOG2012.ASPX?BID=2898174》, 2 December 2011 (2011-12-02), pages 1 - 5 *
匿名: "Oracle的动态SQL", 《BLOG.CSDN.NET/FW0124/ARTICLE/DETAILS/6845790》, 5 October 2011 (2011-10-05), pages 1 - 8 *
匿名: "基于Oracle的高性能动态SQL程序开发", 《TECH.SINA.COM.CN/S/2004-10-22/1410445174.SHTML》, 22 October 2004 (2004-10-22), pages 1 - 3 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527807A (zh) * 2019-09-18 2021-03-19 银联数据服务有限公司 一种数据结构操作方法及装置
CN111259067A (zh) * 2020-01-21 2020-06-09 褚晶晶 一种基于Spring实现DAO接口的方法、装置及设备
CN111259067B (zh) * 2020-01-21 2023-06-06 褚晶晶 一种基于Spring实现DAO接口的方法、装置及设备
CN112307121A (zh) * 2020-10-30 2021-02-02 中国平安人寿保险股份有限公司 基于Oracle的数据同步方法、装置及计算机设备
CN112307121B (zh) * 2020-10-30 2023-10-31 中国平安人寿保险股份有限公司 基于Oracle的数据同步方法、装置及计算机设备

Similar Documents

Publication Publication Date Title
CN105550293B (zh) 一种基于Spark‑SQL大数据处理平台的后台刷新方法
CN109739894B (zh) 补充元数据描述的方法、装置、设备及存储介质
CN105205105B (zh) 一种基于storm的数据ETL系统及处理方法
CN101504664B (zh) 对全量源数据进行抽取转换加载的装置及方法
CN101763447B (zh) 三维造型软件与有限元分析软件之间数据自动转换的方法
CN102012935A (zh) 通过Excel对系统之间数据治理的方法
WO2007103984A3 (en) Multiple image input for optical character recognition processing systems and methods
CN104572895A (zh) MPP数据库与Hadoop集群数据互通方法、工具及实现方法
CN105354020A (zh) 一种Json格式数据解析方法及数据接收端
CN102542038A (zh) 一种通用可配置的标准局数据入库方法
CN102521218B (zh) 文件合成方法及装置
CN102819588A (zh) 一种应用于Oracle数据库的动态数据处理方法
CN110851511A (zh) 数据同步的方法及装置
CN105893016A (zh) 基于mvc架构的日志记录系统及方法
CN102999480A (zh) 编辑文档的方法及系统
CN104462351A (zh) 一种面向MapReduce范型的数据查询模型与方法
CN103345501A (zh) 数据库更新方法和装置
CN110932929B (zh) Ccsds体制卫星遥测包分类提取方法、系统及介质
CN103942280A (zh) 一种基于数据结构自动生成代码的方法
CN110083372A (zh) 一种区块链数据版本升级方法
CN107025249A (zh) 一种快速支持多数据库同步开发的方法
CN106502729B (zh) 一种Flash播放器的资源加载方法及系统
CN105224317B (zh) 一种apk应用到安卓项目源码中的方法及系统
CN109165225A (zh) 一种基于字节流格式的kudu数据导入系统及方法
CN105488271B (zh) 一种油气模块型钢自动匹配方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20121212