CN102819588A - 一种应用于Oracle数据库的动态数据处理方法 - Google Patents
一种应用于Oracle数据库的动态数据处理方法 Download PDFInfo
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种应用于Oracle数据库的动态数据处理方法,它包括以下步骤:创建数据访问对象即DAO对象,包括数据插入、更新和删除;设定连接的数据库Oracle;设置DAO对象对应的结构化查询语句即SQL语句;设置各SQL语句的相应绑定参数;执行动态数据处理,接收数据操作指令,将数据操作指令保存至相应DAO对象的缓存中;判断待处理的DAO对象是否需要继续插入数据,如果需要,则继续把数据插入到DAO对象为其分配的缓存中;否则,执行数据操作,并结束。本发明通过动态DAO技术,大幅降低系统的改造升级成本,降低人力资源的投入,而且提高系统的稳定性。
Description
技术领域
本发明涉及数据访问对象即动态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变量名、参数类型、参数长度、参数的目标值和参数位置。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1869991A (zh) * | 2006-06-30 | 2006-11-29 | 南京联创科技股份有限公司 | 基于动态代理的数据访问对象模式的实现方法 |
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
-
2012
- 2012-08-06 CN CN2012102769052A patent/CN102819588A/zh active Pending
Patent Citations (2)
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)
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)
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 |