GreenDao之Identity scope and session “cache”

Android数据库框架-GreenDao入门,Android多线程实现方式及并发与同步 面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。 阅读详情

原文http://greendao-orm.com/documentation/sessions/

        问题:

DaoMaster dm = AppContext.getDaoMaster(ctx);
DaoSession ds = dm.newSession(IdentityScopeType.Session);

        如果传入的是IdentityScopeType.Session,同样的查询只会执行一次,查询结果对象List保存在内存里会重复使用。会导致的问题是如果List对象属性改变,未持久化它,再次做query,不会从数据库查询,只是缓存中的结果。会导致与数据库表数据不一致。

       解决办法,再次执行查询之前执行ds.clear();方法。或者在这种情况下之不保留缓存,用IdentityScopeType.None。

<span style="white-space:pre">	</span>public List<Label> queryLabels(){
		DaoSession ds = AppContext.getDaoSession(ctx);
//		//clear the cache,requery the data from database table, not from the memory.
		ds.clear();
		
		QueryBuilder<Label> qb = ds.getLabelDao().queryBuilder();
		qb.where(LabelDao.Properties.Deleted.eq(false));
		List<Label> labels = qb.list();
		if(labels.size()<showNum){
			Label entity = new Label(null, "添加标签", null, false, null, null, true, false);
			labels.add(entity);
		}

		
		return labels;
	}

或者用IdentityScopeType.None创建DaoSession


<span style="white-space:pre">	</span>private DaoSession getDaoSession(IdentityScopeType scope){
		if(scope == IdentityScopeType.Session){
			DaoSession ds = AppContext.getDaoSession(ctx);
			return ds;
		}else{
			DaoMaster dm = AppContext.getDaoMaster(ctx);
			DaoSession ds = dm.newSession(IdentityScopeType.None);
			return ds;
		}
	}


GreenDao的简单例子 简单的用一个DBManager封装了对表的操作方法 立即下载

相关推荐

WSL2部署Cadence Virtuoso IC25.1:Ubuntu 26.04排障实录

WSL2以轻量虚拟机结合完整Linux内核,为Windows桌面环境提供了原生级Linux运行能力,解决了传统虚拟机资源开销大、双系统切换低效的问题。对于依赖X11图形协议、FlexNet许可服务和特定动态库的EDA工具链而言,利用WSL2部署Linux发行版需要关注系统集成、显示通路与许可连通性。从技术原理看,图形层X Server的配置、动态库依赖的补齐以及license服务的主机名解析,共同构成EDA工具在WSL2中稳定运行的关键环节。在芯片设计场景中,设计工程师常需在Windows办公机与Linux

weixin_29597551的博客 209

GreenDao学习笔记——初始化和增删改查

android

bin的专栏 7092

一位海外开发者的 OpenSPG KAG 实践分享

KAG 是一个以创建和操作知识图谱为核心的框架。知识图谱是数据之间相互关联的可视化和结构化表示,对于搜索引擎、推荐系统和机器学习等应用至关重要。KAG 的目标是提供一个强大的平台,使开发者能够:轻松构建图谱;通过增强算法丰富数据;集成人工智能,以进行更精确的推理。通过理解 KAG,可以明显看出,这个框架旨在帮助从初学者到专业开发者,在项目中创造更优的解决方案。它在简便性和集成方面的优势,使其成为下一代基于数据的应用程序的前景工具。

金融机器智能社区 3405

Android-GreenDao增删改查以及底层实现简介

GreenDao 初始化: public voidinitDB(Context context,String dbName) { this.context= context; DaoMaster.DevOpenHelper helper =newDaoMaster.DevOpenHelper(context,"name_jia_"+ dbName, null); instance.sql...

巧克力的专栏 1843

6.2 磁悬浮轴承:软件架构与实现

本文系统阐述了磁悬浮轴承控制系统的软件架构与实现方法。采用分层架构设计,包括硬件抽象层、实时控制内核、控制算法层和应用层,确保系统实时性和可靠性。重点分析了电流环、位置环等关键控制任务的调度策略,比较了不同硬件平台(DSP、ARM、FPGA)的软件实现方案。强调模块化设计、配置化管理等工程实践,并详细介绍了从算法仿真到系统联调的完整开发流程。最后指出严格的测试验证是保证系统性能的关键,需通过多阶段测试评估起浮时间、稳态精度等核心指标。

技术工作者 751

【Isaac Sim】无头服务器远程桌面连接实战:Turbovnc配置与常见问题解决

本文详细介绍了在无头GPU服务器上通过Turbovnc远程桌面连接并运行NVIDIA Isaac Sim的实战教程。针对无图形界面服务器运行仿真软件的核心痛点,文章提供了从Turbovnc安装配置、SSH隧道建立,到以普通用户身份启动服务、解决GLXBadFBConfig等常见图形错误的完整方案,帮助开发者在云端高效部署机器人仿真环境。

weixin_29254673的博客 772

GreenDAO缓存遇到大坑的解决方法

val contactGroupItemDao = DBUtils.getDao().contactGroupItemDao contactGroupItemDao.detachAll() //重点:先调用detachAll(),再调用下面的loadAll,这样就不从缓存二手从数据库拿数据了。创建DaoSession的时候方法里面传入IdentityScopeType.None就行,不过这样算全局配置了,不推荐,毕竟有些地方还是需要缓存的,缓存还是比较快的。

weixin_55642749的博客 587

Android加密开发实战:Spongy Castle集成与国密算法应用指南

在移动应用开发中,数据加密是保障用户隐私和信息安全的基石。其原理基于密码学算法,通过对数据进行编码转换,确保即使数据被截获也无法被未授权方解读。这项技术的核心价值在于为敏感信息提供机密性、完整性和身份验证,广泛应用于用户登录、本地存储、网络通信等场景。对于Android开发者而言,系统自带的加密功能有时无法满足需求,特别是涉及国密算法或更丰富算法套件时。本文聚焦于Spongy Castle这一专为Android定制的加密库,它有效解决了与系统内置Bouncy Castle的兼容性问题,并提供了对SM4等国密

weixin_27722377的博客 307

android 短信增删改查,Android-GreenDao增删改查以及底层实现简介

GreenDao 初始化:public voidinitDB(Context context,String dbName){this.context= context;DaoMaster.DevOpenHelper helper =newDaoMaster.DevOpenHelper(context,"name_jia_"+ dbName, null);instance.sqlDb= helper...

weixin_42336364的博客 336

tcllib2.0 package - csv

tcl lib 的csv库

shin 859

实测!Gemini+ChatGPT赋能学术写作:我的论文写作SOP(附提示词)

各位同仁好,我是七哥。一个在高校里从事人工智能相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude等大模型学术实操相关问题,多多交流,相互成就,共同进步。为什么ChatGPT逻辑清晰却写不长?为什么Gemini能深入分析但废话连篇?这其实是两种模型架构的本质差异,GPT系列擅长指令跟随和语言精炼,而Gemini原生支持超长上下文,适合深度文本生成。两者在深度生成与精炼表达上形成了天然互补。我们可以将它们组合起来使用发挥他们各自的特长。

智能AI让学术科研更容易 520

GreenDAO高级特性:异步操作、RxJava集成与性能优化

GreenDAO高级特性:异步操作、RxJava集成与性能优化 本文深入探讨GreenDAO的高级特性,包括AsyncSession异步操作与批量处理、RxJava集成实现响应式数据访问、IdentityScope内存缓存与性能优化策略以及数据库加密与SQLCipher集成方案。通过详细的架构分析、代码示例和性能优化建议,帮助开发者充分利用GreenDAO的强大功能,提升应用的数据处理效率和安全性...

gitblog_00122的博客 544

Android 系统低内存lowmemorykiller关于阈值修改 minfreeAbsKbytes优化

在系统rom定制化开发中,在对于运行内存ram 1G和2G的设备中,对于内存使用高峰期时,minfreeAbsKbytes优化很关键 调整合理的minfree,让内存合理的使用很关键,接下来分析相关功能的实现

安卓兼职framework和app工程师的博客 522

GreenDao3.0 源码分析-DaoMaster和DaoSeesion

AbstractDaoMaster从图中我们知道,DaoMaster和AbstractDaoMaster是父子类的关系,我们先看AbstractDaoMaster:从上面类图中,我们知道daoMaster维护一个daoConfigMap以Dao.class为key维护一个映射关系,而且通过调用我们可以知道 AbstractDaoMaster的功能主要职责之一是创建注册DaoConfig,并且维护他...

木木baby的博客 2138

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数据库学习之 greenDAO 源码分析

概述 greenDAO 主要使用起来方便的地方,就是使用 @Entity 注解实体类后,只需要build工程,DaoMaster、DaoSession和对应的 Dao 文件就会自动生成,所以对于 greenDAO 来说,需要分析的主要就是 DaoMaster、DaoSession 和 xxDAO 这几部分。 DaoMaster:使用 greenDAO 的切入点。 DaoMaster 保存数据库对...

u011371324的专栏 1874

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

greenDao原理分析

一、前言: 今天主要分析greenDao3.2 版本,里面主要是使用注解的方式,并且需要引入相应的 gradle 插件来使用: 图1是从官网盗来的主结构图,注解Entity后,只需要build工程,DaoMaster、DaoSession和对应的Dao文件就会自动生成。分析greenDAO的实现原理,将会依照这幅图的路线入手,分析各个部分的作用,最重要是研究清楚greenDAO是怎样调用数据库的...

weixin_39069034的博客 1828

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Asp.net 访问 共享目录

public class IdentityScope : IDisposable { // obtains user token [DllImport("advapi32.dll", SetLastError = true)] static extern bool LogonUser(string pszUsername, string pszDom...

weixin_30300225的博客 121

使用greenDAO进行开发总结

很多网上有介绍使用greenDAO的方法,

xunfan的专栏 4760

GreenDao 缓存

在项目中遇到这样的问题,数据库使用的 GreenDao, 两个 Activity, 分别添加同一个 Fragment, 查本地数据库,实体类中有一个是否选中状态的字段是不保存到数据库的,@transient 标记的,发现会出现这样的现象:在 Activity1 中的 Fragment 查出来,第一个位置选中,到 Activity2 中的 Fragment 查出来的第一个位置也是选中的,wha...

hexiaosa91的博客 641

Android数据库框架-GreenDao入门,阿里P8架构师Android大厂面试题总结

// in the individual module build.gradle files } } 之后点击Sync Project 2.2. 在app的build.gradle中配置 apply plugin: ‘com.android.application’ apply plugin: ‘org.greenrobot.greendao’ 之后在dependencies中添加依赖 dependencies { implementation fileTree(dir: ‘libs’, include:

m0_64604178的博客 1057

GreenDao,clearIdentityScope报错Error:Execution failed for task ':app:compileDebugJavaWithJavac'. > Com

首先是greendao的配置 GreenDao配置 在工程的build.grdle中,如下: buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:...

ZhangJiqun&191cm&85kg 1847

Android GreenDao的基本应用

转载请注明: http://blog.csdn.net/sinat_30276961/article/details/50061377 上一篇介绍了GreenDao的基本特性和使用GreenDao的Generator生成数据库业务代码。本篇将基于上篇的例子,继续讲解GreenDao的核心api,增删改查。 按照国际惯例,先讲实例演示:我要展示的小应用是一个很简单的资讯查看类应用,意在展示gre

Shi_Liz的博客 2739

GreenDao3.0框架使用详解

最近将一个使用蓝牙设备测人体温度的穿戴设备项目做完了,有时间来总结下本项目中使用到的一些基础知识。上次写过关于GreenDao3.0框架在使用前的配置问题,可点击查看GreenDao3.0框架使用时IDE的配置问题,下面将详细的讲解下具体的使用过程。 编译后在gen包下会多出三个类,分别是TempDataDao,DaoMaster,DaoSession. TempData实体类里面是这

zhenghongwu的博客 4537

Android数据库框架-GreenDao入门,阿里P8大佬整理

面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。

m0_61067876的博客 1168

android 数据库之GreenDao使用

GreenDao 官方网站地址:http://greenrobot.org/greendao/ github地址 :https://github.com/greenrobot/greenDAO GreenDao 优点: 1查询效率高 2 内存占用小 3集成方便 使用方法: 1 引用(一个都不能少) APP下的build.gradle 第一句一...

一个人的暗 751
上一篇: Android之ListView的CheckBox状态错乱
下一篇: JAVA之代码混淆proguard基础(二)
allenlee
博客等级 码龄18年 95粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值