欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

GreenDao基本使用方式与怎么通过stetho查看数据库

程序员文章站 2022-06-27 18:37:07
一、意义将数据库层模型转换为 JAVA 对象,可直接使用二、GreenDAO 学习方法官方文档GreenDAO Example 和 GreenDAO Generation查看写法源码解析:首先,DevOpenHelper 打开数据库操作,创建一个表通过 db = hepler.getWritableDatabase() 得到一个数据库对象DaoMaster 数据库的主干 DaoMaster daoMaster = new DaoMaster(db)DaoMaster.newSessi...

一、意义

将数据库层模型转换为 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; @Id privateStringquestion_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
GreenDao基本使用方式与怎么通过stetho查看数据库

5.如下点击
GreenDao基本使用方式与怎么通过stetho查看数据库

参考文章:
GreenDao基本使用和版本升级

本文地址:https://blog.csdn.net/qq_36120652/article/details/107916605