GreenDao基本使用与通过stetho查看数据库
一、意义
将数据库层模型转换为 JAVA 对象,可直接使用
二、GreenDAO 学习方法
- 官方文档
- GreenDAO Example 和 GreenDAO Generation查看写法
源码解析:
- 首先,DevOpenHelper 打开数据库操作,创建一个表
- 通过 db = hepler.getWritableDatabase() 得到一个数据库对象
- DaoMaster 数据库的主干 DaoMaster daoMaster = new DaoMaster(db)
- DaoMaster.newSession()数据库的会话层
三、使用步骤
1.前期准备
①项目中添加依赖
buildscript{repositories{google()jcenter()mavenCentral()}
dependencies{classpath 'com.android.tools.build:gradle:3.5.0'classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'}
}
allprojects{repositories{google()jcenter()maven {url"https://jitpack.io"}}
}
taskclean(type:Delete){delete rootProject.buildDir
}
②在 module 添加依赖
- 头部
apply plugin:'com.android.application'
apply plugin:'org.greenrobot.greendao'
- greenDAO 配置-生成位置在 build/generated/source/greendao
greendao{schemaVersion 1//数据库版本号
//设置DaoMaster、DaoSession、Dao包名
generateTests false//设置为true以自动生成单元测试。
targetGenDirTests 'src/main/java'//应存储生成的单元测试的基本目录默认为src/androidTest/java。
}
- 导入包
//greendao
implementation 'org.greenrobot:greendao:3.2.2'
2.创建实体类,绑定数据库
@Entity(nameInDb="QuestionTable")
publicclass QuestionInfo implements Serializable{private static final long serialVersionUID = 1L;privateint type;@IdprivateStringquestion_id;
Ctrl + F9 - Make Project
生成 green 的数据 dao 文件(QuestionInfoDao)
3.创建数据库并写查询操作
思路:
- 主要分两步
- 数据库的初始化,使用DaoMaster.OpenHelper 创建数据库表(表名/拿到会话层DaoSession),并在Application中 Helper.initDataBase()初始化
- 数据操作控制器,通过 DaoSession 拿到生成的 QuesionInfoDao,通过 dao 利用greenDao内置api实现查询/删除/插入操作
①数据库初始化
- 创建数据库
QuestionDaoOpenHelperhelper = new QuestionDaoOpenHelper( BassApp.mContext,"question.db",null);
- 得到数据库对象
DaoMaster daoMaster = new DaoMaster(helper.getWritableDatabase());
- 建立数据库会话层
mDaoSession = daoMaster.**newSession();**
完整代码:
/**
* Created by zhoujunyuon 2020-08-07.
*/
public class QuestionDaoOpenHelper extends DaoMaster.OpenHelper{public static DaoSession mDaoSession;
public QuestionDaoOpenHelper(Contextcontext,Stringname,SQLiteDatabase.CursorFactoryfactory){super(context,name,factory);
}public static void initData(){QuestionDaoOpenHelperhelper = new QuestionDaoOpenHelper( BassApp.mContext ,"question.db",null);DaoMasterdaoMaster = new DaoMaster( helper.getWritableDatabase());mDaoSession = daoMaster.newSession();}
}
- BassApp 中 初始化
QuestionDaoOpenHelper.initData();
②数据操作控制器
- 通过 mDaoSession 拿到数据的 dao
dao = daoSession.getQuestionInfoDao();
- 利用 greenDao 计算的 dao 进行便捷的增删改查操作
dao.queryBuilder().list();
dao.insertOrReplaceInTx(list);
- 数据获取
mCurrentList = QuestionDbController.getInstance()**.quaryAll();
完整代码:
/**
*Createdbyzhoujunyuon2020-08-07.
*/
public class QuestionDbController{private static QuestionDbController INSTANCE = null;
private DaoSession daoSession;
private QuestionInfoDao dao;public static QuestionDbController getInstance(){synchronized( QuestionDbController.class ){if(INSTANCE == null){INSTANCE = new QuestionDbController();}}return INSTANCE;
}private QuestionDbController(){daoSession = QuestionDaoOpenHelper.mDaoSession;dao=daoSession.getQuestionInfoDao();
}public List<QuestionInfo> quaryAll(){returndao.queryBuilder().list();
}public void insertOrReplace( List<QuestionInfo>list){this.dao.insertOrReplaceInTx(list);
}
}
通过stetho查看数据库
1.在app的gradle中导入
implementation 'com.facebook.stetho:stetho:1.3.1'
2:在你自定义的 Application的 onCreate() 加入:
Stetho.initializeWithDefaults(this);
3.保持手机连接状态访问
chrome://inspect/#devices
4.选 inspect
5.如下点击
参考文章:
GreenDao基本使用和版本升级
GreenDao基本使用与通过stetho查看数据库相关推荐
- stetho 调试数据库_stetho是适用于android应用程序的最佳调试工具
stetho 调试数据库 As Android developers, our development life often involves integrating API or web servi ...
- Android进阶之路 - 使用Stetho查看真机数据库
起因:维护老项目,需查看本地数据库数据,起初使用了DDMS调试,但使用时发现真机需Root.而我又不想使用模拟器,在此基础下我发现了Stetho三方框架能实现我的需求,故在使用真实有效的基础下总结此篇 ...
- Android查看数据库“*.db“内容
Android查看数据库"*.db"内容(包括本地文件.真机.虚拟机的方法) 使用android自带的SQLite,或者第三方的GreenDao等技术操作数据库时,查看内容有以下方 ...
- android想用adb查看数据库 被告知inaccessible or not found怎么办
通常,我们在进行数据库操作的时候,都想要查看数据库结果是否正确,这时候我们会用到adb.首先我们将adb加入环境变量 vi ~/.bash_profile 进入到vi模式开始修改 export AND ...
- stetho 调试数据库_使用Stetho轻松调试Android应用程序
stetho 调试数据库 Many times while developing android applications I face problems in debugging. It is re ...
- mysql查看数据库创建语句_mysql-模糊查找数据库和查看数据库的创建语句
查看指定部分的数据库:模糊查寻 语法: show databases like 'pattern' – pattern是模式 %:表示匹配多个字符 _: 表示匹配单个字符 创建数据库进行测试: 创建t ...
- MySQL之查看数据库编码
MySQL之查看数据库编码 转载于:https://www.cnblogs.com/jums/p/10601606.html
- 查看 mysql 占用的内存大小_mysql查看数据库和表的占用空间大小
查看数据库的大小 use 数据库名 SELECT sum(DATA_LENGTH)+sum(INDEX_LENGTH) FROM information_schema.TABLES where TAB ...
- 查看数据库大小_查看Oracle 数据库的每天归档量及数据库大小
1.日志位置 SQL> select group#,member from v$logfile; SQL> select GROUP#,MEMBERS,BYTES/1024/1024,TH ...
最新文章
- 2022-2028年中国绝热隔音材料行业投资分析及前景预测报告
- 14.QueuedConnection和BlockingQueuedConnection连接方式源码分析
- php submit 不要刷新,php实现保存submit内容之后禁止刷新
- sqlserver中查找长时间未提交事务
- 安装CentOS6.8并配置网络图文解说亲测全过程
- MYSQL学习(一) - 数据结构
- php ci controller,Codeigniter – CI_Controller与控制器
- 关于python开发CRM系统
- LeetCode 16最接近的三数之和
- vj p1038题解
- gdb 打印字符串全部内容
- 如何写数据分析岗位简历?看完瞬间秒懂
- VBA字典(dictionary)
- 10015---MySQL--innodb_flush_log_at_trx_commit参数
- List集合按数量分组
- linux shell 中文输入,Linux操作系统的Shell环境中输入中文
- windows android双系统,劲爆!Windows与Android双系统成功合体
- 还不会小程序开发?适用于新手、前端、后端、全栈的小程序开发保姆级教程!
- 做了个面试题:使用TDD思想,用vue3集成自己手写的event bus。
- 专科计算机专业能报考南方电网,想进南方电网工作?你必须得是这些专业的学生!...
热门文章
- 探花交友11-实现推荐系统
- 拯救redis被攻击后的服务器
- StringUtils.isEmpty()和isBlank,isNoneBlank,isNotBlank的区别
- skew算法_Skew-Fit
- 程序人生 - 王者荣耀战队荣誉勋章获取途径
- C#桌面应用程序调用Ocx控件
- React hooks之 useCallback的使用
- xcode江湖录-第04章 风水宝地--界面生成器
- php微信跳转外部浏览器打开,微信中打开链接,自动打开外部浏览器打开指定URL页面...
- 【HTML——落花雨(你飘摇的美丽~)】(效果+特效)