【技术实现步骤摘要】
本专利技术实施例涉及数据处理
,尤其涉及一种对数据库操作进行批处理的方法和装置。
技术介绍
内容提供者(Contentprovider)是android的四大组件之一,它为存储和获取数据提供统一的接口,可以在不同的应用程序之间共享数据。ContentProvider将数据的访问方式统一,不必针对不同数据类型采取不同的访问策略,通常ContentProvider使用表的形式来组织数据,无论数据的来源是什么,ContentProvider都会默认为是一种表,然后把数据组织形成表格。ContentProvider提供的数据库操作包括:query查询;insert插入;update更新;delete删除;getType得到数据类型;onCreate创建数据时调用的回调函数。使用ContentProvider的applyBatch(String authority,ArrayList<ContentProviderOperation>operations)可以将多个数据库操作在一个
事务中执行。批处理applyBatch,用于把一批新增、修改、删除的请求放到一个transaction事务中,在一个transaction事务向ContentProvider发送一批命令,节省了在处理数据库以及线程的上下文切换时间,使得数据库操作更快更高效。对于批处理applyBatch,一批处理多少个数据项非常重要。如果设置的数量很小,效率不高,则没有充分减小上下文切换的损耗,但是如果设置的数量很大,则很可能发生TransactionTooLarge ...
【技术保护点】
一种对数据库操作进行批处理的方法,其特征在于,包括:收集数据库操作,并将数据库操作发送给内容提供者提供的applyBatch;通过applyBatch对数据库操作进行批处理;如果当前处理批次的数据库操作对数据库修改没有成功,则查找符合预设条件的分割点yield point,根据查找到的yield point将所述当前处理批次的数据库操作进行划分,并将划分后的数据库操作发送给applyBatch进行批处理,直到当前处理批次的数据库操作对数据库修改成功。
【技术特征摘要】
1.一种对数据库操作进行批处理的方法,其特征在于,包括:收集数据库操作,并将数据库操作发送给内容提供者提供的applyBatch;通过applyBatch对数据库操作进行批处理;如果当前处理批次的数据库操作对数据库修改没有成功,则查找符合预设条件的分割点yield point,根据查找到的yield point将所述当前处理批次的数据库操作进行划分,并将划分后的数据库操作发送给applyBatch进行批处理,直到当前处理批次的数据库操作对数据库修改成功。2.根据权利要求1所述的对数据库操作进行批处理的方法,其特征在于,所述方法还包括:预先定义内容提供者提供的applyBatch的数据库操作类LeOperation,所述LeOperation包括内容提供者操作ContentProviderOperation、内容提供者操作创建ContentProviderOperation.Builder、列名columnName、偏移offset和布尔类型Boolean,其中所述Boolean用于表示数据库操作是否位于yield point。3.根据权利要求2所述的对数据库操作进行批处理的方法,其特征在于,所述方法还包括:ContentProviderOperation.Builder通过withValueBackReference,在当前批次的第previousResult条数据库操作执行完成后,生成索引值,并将索引值作为当前记录的key字段的值;LeOperation的columnName对应withValueBackReference中的key,
\toffset对应previousResult,如果将当前批次的数据库操作分组时,重新计算offset。4.根据权利要求3所述的对数据库操作进行批处理的方法,其特征在于,所述查找符合预设条件的yield point,根据查找到的yield point将所述当前处理批次的数据库操作进行划分,并将划分后的数据库操作发送给applyBatch进行批处理的步骤包括:从当前批次的数据库操作的中间向两边开始查找yield point,如果查找到LeOperation的columnName为设定值数的数据库操作,则所述数据库操作是yield point;根据查找到的yield point将所述当前处理批次的数据库操作划分两组,并将划分后的两组数据库操作发送给applyBatch进行批处理。5.根据权利要求4所述的对数据库操作进行批处理的方法,其特征在于,所述方法还包括:将划分后的两组数据库操作发送给applyBatch进行批处理后,记录新批次首元素的位置L,则新批次中数据库操作的previousResult的offset为offset-...
【专利技术属性】
技术研发人员:江丹,杨丹,
申请(专利权)人:乐视移动智能信息技术北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。