一种批量数据操作方法

文档序号:6613371阅读:392来源:国知局

专利名称::一种批量数据操作方法
技术领域
:本发明涉及电数字数据处理领域,特别涉及批量数据操作方法。
背景技术
:在应用程序中,经常会需要对数据库进行大量的批量操作和处理,特别是比较复杂的大型应用系统,对性能要求非常高,通过使用批量操作接口可以允许在同一个数据库事务执行所有的数据库操作语句而不是执行对数据库的一系列调用,通过这种方式可以减少大量的数据库连接和操作处理,可以极大的提升系统的性能。目前一般的近似实现方案是通过直接使用jdbcbatch接口来进行数据的批量操作。图1示出现有技术的一种处理流程,包括步骤Sll、获取数据库连接;步骤S12、创造语句(statement)对象;步骤S13、构造需要执行的完整sql语句;步骤S14、将需要执行的sql语句增加到语句对象的批量语句列表中;步骤S15、判断是否已将所有sql语句都增加到语句对象的批量语句列表中,已增加所有sql语句则进行步骤S16,否则返回进行步骤S13;步骤S16、在语句对象上执行批量处理动作,访问数据库并执行批量语句;步骤S17、关闭语句对象和数据库连接,处理流程结束。采用现有技术,使用jdbcdriver—类做数据库批量操作通常是不透明的,且违背oo(面向对象)处理方式,在orma卯ing(对象关系映射技术)一类实现中尤其明显。
发明内容本发明目的在于提供一种处理批量数据库操作的批量数据操作方法。本发明提供一种批量数据操作方法,包括根据数据库连接对象产生批量连接对象的步骤;生成批量语句对象的步骤;执行数据库语句的步骤。优选地,上述根据数据库连接对象产生批量连接对象的步骤包括获取数据库连接对象的步骤;根据数据库连接对象封装构造批量连接对象的步骤;返回批量连接对象的步骤。优选地,上述生成批量语句对象的步骤包括准备数据库语句,构造批量语句对象的步骤;将数据库语句增加到批量命令列表中的步骤;关闭批量连接对象的步骤;关闭批量语句对象的步骤。优选地,上述执行数据库语句的步骤包括执行批量处理任务的步骤;关闭批量语句对象包含的语句对象的步骤。优选地,上述批量连接对象对数据库的连接和会话提供数据库的描述信息,封装数据库连接,将数据的执行请求委托给批量语句对象统一集中处理。优选地,上述批量语句对象保存预先编译好的数据库批量执行语句,对于分别传递并保存多次执行的参数,统一进行一次数据库访问。上述批量连接对象继承预编译语句对象接口的方法,方法返回批量语句对象的实例,执行语句时调用预编译语句对象接口的addBatch接口,将语句增加到JDBCAPI批量处理-接口,并标志批量处理。当上述批量连接对象执行关闭动作时,遍历此批量连接对象的所有批量语句对象,并依次执行批量语句对象的关闭语句行为,在关闭批量语句对象时,直接调用JDBCAPI的批量处理方法进行数据库的实际访问和语句执行。本发明提供的批量数据操作方法,可以通过面向对象的方式处理批量凄t据库操作;同时作透明化处理,增加应用程序对数据库批量操作的透明性,用户和应用程序不需要了解和关心driver的具体细节;还可增强部分jdbcdriver操作。图i是本发明现有技术的一种处理流程示意图;图2是本发明第一实施例的对象关系图;图3是本发明第一实施例的处理序列图;图4是本发明第一实施例的工作流程示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施例方式本实施例提出基于Java数据库连接驱动器(以下简称JDBCDriver)通过封装和拦截JDBC的API来提供透明性的批量数据操作。本实施例定义并封装两个类,一个是批量连接对象(BatchConnection),另一个是批量语句对象(BatchPr印aredStatement)。其中批量连接对象对某个凄t据库的连接和会话提供数据库的一些描述信息,包括表信息,支持的数据库语法等。批量连接对象封装了普通数据库连接,将数据的执行请求委托给批量语句对象统一集中处理。而批量语句对象保存已经预先编译好的数据库批量执行语句,多次执行只需要传递参数,并将参数保存下来,最终只需进行一次实际数据库访问即可,可以极大"t是高^l行效率。批量连接对象和批量语句对象与JDBCDriver的对象关系如图2所示,预编i奪语句对象接口(PreparedStatement)提供预编译语句的实现规范,数据库连接接口(Connection)提供与数据库连接的实现规范,批量连接对象和批量语句对象遵循Decorator(装饰器)模式,直接实现JDBCDriver相关接口,并包裹相关的JDBCAPI,拦截和修改JDBCAPI相关4亍为,拦截部分jdbcdriver^喿作,并且增强部分jdbcdriver操作的批量处理、使用方式和性能。JDBC由两层构成,第一层称为JDBCAPI,第二层JDBC管理器驱动程序API,JDBCAPI将SQL命令传达到JDBC管理器驱动程序API。JDBC管理器应该与各种实际连接到数据库的第三方驱动程序通信,然后返回查询信息或者执行由查询指定的操作。Java代码将SQL语句作为函数调用传递给DB2JDBC驱动程序。然后,驱动程序处理来自客户才几Java代码的JDBCAPI调用。本实施例提出的批量连接对象和批量语句对象是JDBC驱动数据库连接接口和预编译语句对象接口的一个特殊实现。结合图3,本实施例的处理序列为获取一个批量连接对象实例,获取此实例后可以直接获取预编译语句对象接口的方法,此方法直接返回一个批量语句对象的实例,当执行批量语句对象时实际上并不实际直接访问数据库,而是调用预编译语句对象接口的addBatch接口,将此语句增加到JDBCAPI批量处理接口,同时批量语句对象检查是否有批量操作,当发现有批量操作时就在内部设置批量处理标志,这样后续可以根据批量处理标志来判断是否需要马上执行操作,如果存在批量处理标志则一直等待批量连接对象关闭的时候才集中执行一次数据库操作;如果不存在批量处理标志,则采用现有技术执行数据库操作。当批量连接对象执行关闭动作时,遍历此批量连接对象的所有批量语句对象,并依次执行批量语句对象的关闭语句行为,在关闭批量语句对象时,直接调用JDBCAPI的批量处理方法进行数据库的实际访问和语句执行。上述预编译语句对象接口的addBatch接口用于增加sq1语句命令到批量处理列表里面,以便后续预编译语句对象一次执行所有语句命令。参照图4,本实施例的工作流程包括步骤S21、获取普通数据库连接对象;步骤S22、通过产生的数据库连接对象,封装构造出一个批量连接对象,返回一个批量连接对象;步骤S23、构造sql语句,构造批量语句对象;步骤S24、将sql语句增加到批量语句对象批量列表中,当发现有批量操作时就在内部设置批量处理标志;步骤S25、关闭批量连接对象;步骤S26、执行批量连接对象关联的批量语句对象的关闭动作;步骤S27、批量语句对象执行关闭;步骤S28、检测批量处理标志,如果存在批量处理标志,则进行步骤S29,否则进4亍步骤S210;步骤S29,执行批量处理任务,访问数据库进行数据库操作;步骤S210,直接关闭数据库连接和语句;步骤S211、关闭批量语句对象包含的语句对象,流程结束。将上述工作流程整理如表l所示,对使用者来说只需要知道批量连接对象即可,其他的操作和;f亍为对使用者都是透明的。<table>tableseeoriginaldocumentpage7</column></row><table>表1本发明还可应用于除Java数据库连接驱动器之外的其他多种数据库连接驱动器,处理逸程与上述实施例类似,故不赘述。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。权利要求1.一种批量数据操作方法,包括根据数据库连接对象产生批量连接对象的步骤;生成批量语句对象的步骤;执行数据库语句的步骤。2.根据权利要求l所述的批量数据操作方法,其特征在于,所述根据数据库连"l妻对象产生批量连接对象的步骤包括获取数据库连接对象的步骤;根据数据库连接对象封装构造批量连接对象的步骤;返回批量连接对象的步骤。3.根据权利要求l所述的批量数据操作方法,其特征在于,所述生成批量语句对象的步骤包括准备数据库语句,构造批量语句对象的步骤;将数据库语句增加到批量命令列表中的步骤;关闭批量连接对象的步骤;关闭批量语句对象的步骤。4.根据权利要求l所述的批量数据操作方法,其特征在于,所述执行数据库语句的步骤包括执行批量处理任务的步骤;关闭批量语句对象包含的语句对象的步骤。5.根据权利要求1至4任意一项所述的批量数据操作方法,其特征在于,所述批量连接对象对数据库的连接和会话提供数据库的描述信息,封装数据库连接,将数据的执行请求委托给批量语句对象统一集中处理。6.根据权利要求1至4任意一项所述的批量数据操作方法,其特征在于,所述批量语句对象保存预先编译好的数据库批量执行语句,对于分别传递并保存多次执行的参数,统一进行一次数据库访问。7.根据权利要求1至4任意一项所述的批量数据操作方法,其特征在于,所述批量连接对象继承预编译语句对象接口的方法,所述方法返回批量语句对象的实例,执行所述语句时调用预编译语句对象接口的addBatch接口,将所述语句增加到JDBCAPI批量处理接口,并标志批量处理。8.根据权利要求1至4任意一项所述的批量数据操作方法,其特征在于,当所述批量连接对象执行关闭动作时,遍历此批量连接对象的所有批量语句对象,并依次执行所述批量语句对象的关闭语句行为,在关闭批量语句对象时,直接调用JDBCAPI的批量处理方法进行数据库的实际访问和语句执行。全文摘要本发明提供一种批量数据操作方法,包括根据数据库连接对象产生批量连接对象的步骤;生成批量语句对象的步骤;执行数据库语句的步骤。本发明提供的批量数据操作方法,可以通过面向对象的方式处理批量数据库操作;同时作透明化处理,增加应用程序对数据库批量操作的透明性,用户和应用程序不需要了解和关心driver的具体细节;还可增强部分jdbcdriver操作。文档编号G06F9/44GK101436184SQ20071017037公开日2009年5月20日申请日期2007年11月15日优先权日2007年11月15日发明者璐彭,银龚申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1