CN104714813B - 一种基于代理模式的android数据库延迟加载方法 - Google Patents
一种基于代理模式的android数据库延迟加载方法 Download PDFInfo
- Publication number
- CN104714813B CN104714813B CN201310684451.7A CN201310684451A CN104714813B CN 104714813 B CN104714813 B CN 104714813B CN 201310684451 A CN201310684451 A CN 201310684451A CN 104714813 B CN104714813 B CN 104714813B
- Authority
- CN
- China
- Prior art keywords
- proxy mode
- database
- class
- proxy
- loading method
- 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.)
- Active
Links
Abstract
本发明公开一种基于代理模式的android数据库延迟加载方法,包括如下步骤:步骤S100,用代理模式实现集合类的代理,ORM中的DAO层访问集合类的代理对象;步骤S200,代理类代理集合类的Iterator方法,只有当从集合中取具体数据调用Iterator方法时,代理对象通过查询数据库的方式填充集合。其有效的提高数据库的使用效率,有效降低系统的内存开销。
Description
技术领域
本发明涉及计算机网络技术领域,特别是涉及一种基于代理模式的android数据库延迟加载方法。
背景技术
ORMlite是操作sqlite数据库的常用ORM框架,嵌入式设备由于其自身的特点,对系统资源的利用需要更加谨慎。针对ORMLite操作的优化也越来越引起人们的注意。
当从数据库中初始化某个持久化实体时,该实体的集合属性是否随持久化类一起初始化呢?如果集合属性里包含十万,甚至百万的记录,在初始化持久化实体的同时,完成所有集合属性的抓取,将导致性能急剧下降。
发明内容
本发明的目的在于提供一种基于代理模式的android数据库延迟加载方法,其有效的提高数据库的使用效率,有效降低系统的内存开销。
为实现本发明目的而提供的一种基于代理模式的android数据库延迟加载方法,包括如下步骤:
步骤S100,用代理模式实现集合类的代理,ORM中的DAO层访问集合类的代理对象;
步骤S200,代理类代理集合类的Iterator方法,只有当从集合中取具体数据调用Iterator方法时,代理对象通过查询数据库的方式填充集合。
较优地,所述代理模式是对其他对象提供一种代理以控制对这个对象的访问。
本发明的基于代理模式的android数据库延迟加载方法,其有效的提高数据库的使用效率,有效降低系统的内存开销,是sqlite数据库在android平台下的一种可行的优化方法。
附图说明
图1为依据本发明一个具体实施例的数据关系示意图;
图2为依据本发明一个具体实施例的图1的数据关系得到的数据库示意图;
图3为依据本发明一个具体实施例的基于代理模式的android图2的数据库延迟加载方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚透彻,以下结合附图及实施例,对本发明的基于代理模式的android数据库延迟加载方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明基于代理模式的android数据库延迟加载方法中,对于集合属性,使用基于代理模式的延迟加载方法,只有系统需要使用集合属性时才从数据库装载关联的数据。
包括如下步骤:
步骤S100,用代理模式实现集合类的代理,ORM中的DAO层访问集合类的代理对象;
步骤S200,代理类代理集合类的Iterator方法,只有当从集合中取具体数据调用Iterator方法时,代理对象通过查询数据库的方式填充集合。
代理模式,即Proxy Pattern。本发明实施例中,所述代理模式是对其他对象提供一种代理以控制对这个对象的访问。
本发明实施例中,所述代理模式是为其他对象提供一种代理以控制对这个对象的访问。
在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
本发明通过代理模式,提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象与实际对象进行通信。
下面针对基于代理模式的android数据库延迟加载方法在实际系统中的应用进行分析。
业务逻辑中,一条记录(saleOrder)可以包含多条明细(goodsItem),形成一对多的关系,如图1所示。
ORMlite框架对SaleOrder形成的DAOSaleOrder来操作数据库,如图2所示。
DAO中返回的是集合类Set的代理对象SetProxy,都实现了Iterator接口,如图3所示。
当集合开始遍历的时候,代理对象加载明细信息。
本发明实施例基于代理模式的android数据库延迟加载方法,有效的减少了数据库的访问次数,并且减少了内存开销,是sqlite数据库在android平台下的一种可行的优化方法。
最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。
Claims (2)
1.一种基于代理模式的android数据库延迟加载方法,其特征在于,包括如下步骤:
步骤S100,用代理模式实现集合类的代理,ORM中的DAO层访问集合类的代理对象;
步骤S200,代理类代理集合类的Iterator方法,只有当从集合中取具体数据调用Iterator方法时,代理对象通过查询数据库的方式填充集合。
2.根据权利要求1所述的基于代理模式的android数据库延迟加载方法,其特征在于,所述代理模式是对其他对象提供一种代理以控制对这个对象的访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310684451.7A CN104714813B (zh) | 2013-12-13 | 2013-12-13 | 一种基于代理模式的android数据库延迟加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310684451.7A CN104714813B (zh) | 2013-12-13 | 2013-12-13 | 一种基于代理模式的android数据库延迟加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104714813A CN104714813A (zh) | 2015-06-17 |
CN104714813B true CN104714813B (zh) | 2019-04-23 |
Family
ID=53414188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310684451.7A Active CN104714813B (zh) | 2013-12-13 | 2013-12-13 | 一种基于代理模式的android数据库延迟加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104714813B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106940714B (zh) * | 2017-03-06 | 2019-07-30 | 掌阅科技股份有限公司 | 一种数据处理方法、装置及电子设备 |
CN109144676B (zh) * | 2017-06-15 | 2022-05-17 | 阿里巴巴集团控股有限公司 | 一种应用程序的自启动检测方法、装置及服务器 |
CN107977470A (zh) * | 2017-12-22 | 2018-05-01 | 陈瑞 | 一种介入对象内部行为的方法及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1869991A (zh) * | 2006-06-30 | 2006-11-29 | 南京联创科技股份有限公司 | 基于动态代理的数据访问对象模式的实现方法 |
CN101403971A (zh) * | 2008-09-05 | 2009-04-08 | 李永武 | 基于代理的数据对象持久化方法及装置 |
-
2013
- 2013-12-13 CN CN201310684451.7A patent/CN104714813B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1869991A (zh) * | 2006-06-30 | 2006-11-29 | 南京联创科技股份有限公司 | 基于动态代理的数据访问对象模式的实现方法 |
CN101403971A (zh) * | 2008-09-05 | 2009-04-08 | 李永武 | 基于代理的数据对象持久化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104714813A (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110612705B (zh) | 一种无服务器架构下业务部署的方法和函数管理平台 | |
WO2022007638A1 (zh) | 一种数据处理方法、装置、设备及系统 | |
CN103514207B (zh) | 一种业务对象推送的方法以及装置 | |
CN105045607A (zh) | 一种实现多种大数据计算框架统一接口的方法 | |
CN115328663A (zh) | 基于PaaS平台进行资源调度的方法、装置、设备和存储介质 | |
US9251227B2 (en) | Intelligently provisioning cloud information services | |
CN104598459A (zh) | 数据库处理、数据访问方法及系统 | |
US9910881B1 (en) | Maintaining versions of control plane data for a network-based service control plane | |
CN105335170A (zh) | 分布式系统及数据增量更新方法 | |
CN104714813B (zh) | 一种基于代理模式的android数据库延迟加载方法 | |
CN109873839A (zh) | 数据访问的方法、服务器与分布式系统 | |
CN105094811A (zh) | 一种事件处理的方法和装置 | |
CN115686805A (zh) | Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置 | |
CN114090113B (zh) | 数据源处理插件动态加载的方法、装置、设备及存储介质 | |
CN108182057A (zh) | 一种基于扩展和插件方式的软件架构设计系统 | |
US9805177B1 (en) | Processing large data sets from heterogeneous data sources using federated computing resources | |
CN112596669A (zh) | 一种基于分布式存储的数据处理方法及装置 | |
US9870396B2 (en) | Immediate join spilling scheme for a database | |
CN103440130A (zh) | 一种数据处理方法以及装置 | |
CN113360251B (zh) | 智能合约执行与跨合约调用方法、装置及存储介质 | |
US8818968B2 (en) | Generic lifecycle management of entity in hierarchy according to status | |
CN116028455A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
US20140074966A1 (en) | Intelligent mapping for an enterprise grid | |
CN109582464B (zh) | 一种云平台管理多种虚拟化平台的方法和装置 | |
CN110515959B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |