一、意义

将数据库层模型转换为 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查看数据库相关推荐

  1. stetho 调试数据库_stetho是适用于android应用程序的最佳调试工具

    stetho 调试数据库 As Android developers, our development life often involves integrating API or web servi ...

  2. Android进阶之路 - 使用Stetho查看真机数据库

    起因:维护老项目,需查看本地数据库数据,起初使用了DDMS调试,但使用时发现真机需Root.而我又不想使用模拟器,在此基础下我发现了Stetho三方框架能实现我的需求,故在使用真实有效的基础下总结此篇 ...

  3. Android查看数据库“*.db“内容

    Android查看数据库"*.db"内容(包括本地文件.真机.虚拟机的方法) 使用android自带的SQLite,或者第三方的GreenDao等技术操作数据库时,查看内容有以下方 ...

  4. android想用adb查看数据库 被告知inaccessible or not found怎么办

    通常,我们在进行数据库操作的时候,都想要查看数据库结果是否正确,这时候我们会用到adb.首先我们将adb加入环境变量 vi ~/.bash_profile 进入到vi模式开始修改 export AND ...

  5. stetho 调试数据库_使用Stetho轻松调试Android应用程序

    stetho 调试数据库 Many times while developing android applications I face problems in debugging. It is re ...

  6. mysql查看数据库创建语句_mysql-模糊查找数据库和查看数据库的创建语句

    查看指定部分的数据库:模糊查寻 语法: show databases like 'pattern' – pattern是模式 %:表示匹配多个字符 _: 表示匹配单个字符 创建数据库进行测试: 创建t ...

  7. MySQL之查看数据库编码

    MySQL之查看数据库编码 转载于:https://www.cnblogs.com/jums/p/10601606.html

  8. 查看 mysql 占用的内存大小_mysql查看数据库和表的占用空间大小

    查看数据库的大小 use 数据库名 SELECT sum(DATA_LENGTH)+sum(INDEX_LENGTH) FROM information_schema.TABLES where TAB ...

  9. 查看数据库大小_查看Oracle 数据库的每天归档量及数据库大小

    1.日志位置 SQL> select group#,member from v$logfile; SQL> select GROUP#,MEMBERS,BYTES/1024/1024,TH ...

最新文章

  1. 2022-2028年中国绝热隔音材料行业投资分析及前景预测报告
  2. 14.QueuedConnection和BlockingQueuedConnection连接方式源码分析
  3. php submit 不要刷新,php实现保存submit内容之后禁止刷新
  4. sqlserver中查找长时间未提交事务
  5. 安装CentOS6.8并配置网络图文解说亲测全过程
  6. MYSQL学习(一) - 数据结构
  7. php ci controller,Codeigniter – CI_Controller与控制器
  8. 关于python开发CRM系统
  9. LeetCode 16最接近的三数之和
  10. vj p1038题解
  11. gdb 打印字符串全部内容
  12. 如何写数据分析岗位简历?看完瞬间秒懂
  13. VBA字典(dictionary)
  14. 10015---MySQL--innodb_flush_log_at_trx_commit参数
  15. List集合按数量分组
  16. linux shell 中文输入,Linux操作系统的Shell环境中输入中文
  17. windows android双系统,劲爆!Windows与Android双系统成功合体
  18. 还不会小程序开发?适用于新手、前端、后端、全栈的小程序开发保姆级教程!
  19. 做了个面试题:使用TDD思想,用vue3集成自己手写的event bus。
  20. 专科计算机专业能报考南方电网,想进南方电网工作?你必须得是这些专业的学生!...

热门文章

  1. 探花交友11-实现推荐系统
  2. 拯救redis被攻击后的服务器
  3. StringUtils.isEmpty()和isBlank,isNoneBlank,isNotBlank的区别
  4. skew算法_Skew-Fit
  5. 程序人生 - 王者荣耀战队荣誉勋章获取途径
  6. C#桌面应用程序调用Ocx控件
  7. React hooks之 useCallback的使用
  8. xcode江湖录-第04章 风水宝地--界面生成器
  9. php微信跳转外部浏览器打开,微信中打开链接,自动打开外部浏览器打开指定URL页面...
  10. 【HTML——落花雨(你飘摇的美丽~)】(效果+特效)