本发明涉及数据分页技术领域,具体涉及一种基于realm数据库的数据分页系统及方法。
背景技术:
在realm数据库中数据查询是延迟加载的,只有在查询结果被使用的时候,才会读取数据库文件加载对象,所以没有提供limit之类的关键字来限制一次加载的数据量,无法进行分页加载。本申请是在realm基础功能上对数据进行处理,实现了数据分批、分页加载。
技术实现要素:
为了解决上述问题,本发明一种基于realm数据库的数据分页系统及方法。
为实现以上目的,本发明采用的技术方案是:
一种基于realm数据库的数据分页系统,包括:
查询模块,获取数据库中所需的数据集合,并将数据复制到本地缓存中;
初始化模块,初始化布局界面的当前页数、每页的数据量和查询出的数据总数;
计算模块,根据布局界面的当前页数、每页的数据量和数据总数计算出数据所在的位置;
对应数据获取模块,获取布局界面当前页数所对应的数据集合;
界面加载模块,加载数据并刷新布局界面。
优选的,所述查询模块中获取数据集合采用查询方法获得,并将获取的数据集合保存到全局变量中。
优选的,所述查询模块中获取的数据集合的数据类型通过泛型来指定。
优选的,所述对应数据获取模块中获取布局界面当前页数所对应的数据集合的方法为:
a、创建一个临时集合;
b、根据所述计算模块计算出数据的所在位置来获取数据对象;
c、将获取的数据对象添加到临时集合中。
优选的,所述布局界面设有适配器,所述界面加载模块会将对应数据获取模块获取的数据集合设置到适配器中,并刷新布局界面显示数据。
一种基于realm数据库的数据分页方法,包括以下步骤:
a、获取数据库中所需的数据集合,并将数据复制到本地缓存中;
b、初始化布局界面的当前页数、每页的数据量和查询出的数据总数;
c、根据布局界面的当前页数、每页的数据量和数据总数计算出数据所在的位置;
d、获取布局界面当前页数所对应的数据集合;
e、将步骤d中获取的数据集合刷新显示在布局界面上。
优选的,所述步骤a中获取数据集合采用查询方法获得,并将获取的数据集合保存到全局变量中。
优选的,所述步骤a中获取的数据集合的数据类型通过泛型来指定。
优选的,所述步骤d中获取布局界面当前页数所对应的数据集合的方法为:
a、创建一个临时集合;
b、根据所述步骤c计算出数据的所在位置来获取数据对象;
c、将获取的数据对象添加到临时集合中。
优选的,所述布局界面设有适配器,所述步骤e会将步骤d获取的数据集合设置到适配器中,并刷新布局界面显示数据。
本发明在realm基础功能上对数据进行处理,实现了数据分批、分页加载,提升界面加载速率,刷新界面时数据加载更快。
附图说明
构成本发明的一部分附图用来提供对本发明的进一步理解。
在附图中:
图1为本发明一种基于realm数据库的数据分页方法的工作流程框图。
图2为本发明一种基于realm数据库的数据分页系统的系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中缩略语和关键术语定义:
realm:是一个移动端数据库,可以在ios系统和android系统中使用。
如图1所示,一种基于realm数据库的数据分页方法,包括以下步骤:
a、获取数据库中所需的数据集合,并将数据复制到本地缓存中;获取数据集合采用查询方法获得,并将获取的数据集合保存到全局变量中;获取的数据集合的数据类型通过泛型来指定。比如,定义一个realmresults类,realmresults类包含指定查询的数据的所有字段,并含有存放数据的集合,realmresults类通过泛型来指定数据和存放数据的集合的类型。创建一个activity文件,在activity文件中存放通用的realmquery(查询realm数据库)的查询方法,查询方法包括findall函数,findall函数指查询全部数据的函数,获取数据集合通过findall函数来获得。
activity文件是一个工具,实现功能时可调用activity文件中存放的方法。
b、初始化布局界面的当前页数、每页的数据量和查询出的数据总数;
c、根据布局界面的当前页数、每页的数据量和数据总数计算出数据所在的位置;
d、获取布局界面当前页数所对应的数据集合;获取布局界面当前页数所对应的数据集合的方法为:
a、创建一个临时集合arraylist;
b、调用realmresults的get方法,根据所述步骤c计算出数据的所在位置的下标来获取数据对象;
c、将获取的数据对象通过add方法添加到临时集合arraylist中。
e、将步骤d中临时集合arraylist中的数据刷新显示在布局界面上;所述布局界面设有适配器,所述步骤e会将临时集合arraylist中的数据设置到适配器中,并刷新布局界面显示数据。
当布局界面换页时,返回步骤b执行该方法,根据当前页数、每页的数量重新计算数据所在位置,获取当前页面对应的数据集合,然后刷新数据显示在布局界面上。
一种基于realm数据库的数据分页系统,包括:
查询模块,获取数据库中所需的数据集合,并将数据复制到本地缓存中;所述查询模块中获取数据集合采用查询方法获得,并将获取的数据集合保存到全局变量中。所述查询模块中获取的数据集合的数据类型通过泛型来指定。
初始化模块,初始化布局界面的当前页数、每页的数据量和查询出的数据总数;
计算模块,根据布局界面的当前页数、每页的数据量和数据总数计算出数据所在的位置;
对应数据获取模块,获取布局界面当前页数所对应的数据集合;所述对应数据获取模块包括:
新建集合模块,创建一个临时集合;
获取数据模块,根据所述计算模块计算出数据的所在位置来获取数据对象;
添加模块,将获取的数据对象添加到临时集合中。
界面加载模块,加载数据并刷新布局界面。所述布局界面设有适配器,所述界面加载模块会将对应数据获取模块获取的数据集合设置到适配器中,并刷新布局界面显示数据。
所述一种基于realm数据库的数据分页方法是基于ios系统或android系统的移动设备来实现的,所述移动设备包括处理器和存储器,所述处理器读取并执行存储器中实现基于realm数据库的数据分页方法的程序。
尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。