首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Android数据库开源框架GreenDao分析

GreenDao框架分析 GreenDao3.0官网介绍 GreenDao文档 GreenDao的Github仓库 GreenDao 的使用在这里就不介绍了,上面的文档链接或者网络上的各种使用教程讲的都很详细...这里主要分析、对比一下GreenDao框架 在原生的基础之上进行了怎么样的封装。 在进行源码分析之前我们先说一下GreenDao 的优缺点,然后在下面的阅读过程中自己进行体会。...greendao-framework.png GreenDao底层封装 Database StandardDatabase实现Database接口,内部代理SQLiteDatabase。...greendao.png GreenDao访问层 提供 XXEntity 数据模型对象、数据模型对象的Properties用来做每个字段的快速访问以及操作数据模型的XXEntityDao。 ?...green-session.png GreenDao的优化 GreenDao 的优化主要体现在 DaoConfig 这个类中。

1.4K30

小结:greenDAO和LitePal的区别

这两个框架思想都差不多,都是把面向对象映射成关系型语言, 主要区别有以下几个: 1. greenDAO的version等数据库属性设置都是在对应的模型类里面完成的,以Java class的属性变量的形式存储...图片发自简书App 2.greenDAO将会生成Java数据对象(实体)和DAO对象。这些DAO对象被用来让实体有最好的合理映射射方式。...而LitePal是直接将Java模型类映射成SQLite数据库对象; 3.添加关系数据表的属性时,greenDAO通过生成的Java实体类的实例调用对应数据类型的方法进行属性添加: ?...图片发自简书App 4.两个框架的增删改查操作风格不一(下面列举一个查询例子的代码片段): greenDAO: ? 图片发自简书App LitePal: ?

1.1K10

Android ORM 框架之 greenDAO

而今天的主角便是 greenDAO,下面,我将详解地介绍如何在 Android Studio 上使用 greenDAO,并结合代码总结一些使用过程中的心得。 关于 greenDAO ?...简单的讲,greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案。...GREENDAO 设计的主要目标 一个精简的库 性能最大化 内存开销最小化 易于使用的 APIs 对 Android 进行高度优化 GREENDAO 设计的主要特点 greenDAO 性能远远高于同类的...在 ANDROID 工程中配置「GREENDAO GENERATOR」模块 在 .src/main 目录下新建一个与 java 同层级的「java-gen」目录,用于存放由 greenDAO 生成的 Bean...「GreenDao Generator」的输出,你可以在这个类中通过对象、关系等创建数据库结构,下面我将以注释的形式详细讲解代码内容。

1.1K60

Android GreenDao的基本使用

前言 Android 本地数据库有很多,Sqlite、Dbutils、LitePa、GreenDao等,其他的几个数据库框架都用过了,GreenDao还未在项目中用过,所以在这里记录下GreenDao...一、添加GreenDao支持  1.1 在项目根目录下的build.gradle下的代码添加下列代码: ?...1.2 在module下build.gradle(这里是app下的build.gradle)中添加下列代码: compile 'org.greenrobot:greendao:3.2.2' 并且在最上面添加...apply plugin: 'org.greenrobot.greendao' //新加的 1.3 在module下build.gradle android中配置greendao的信息 greendao...@Entity 表明这个实体类会在数据库中生成一个与之相对应的表 @Id 对应数据表中的 Id 字段 其他更多注解可以参考greendao官方网站:http://greenrobot.org/greendao

1.8K30

开源数据库框架greenDAO

目前android经常用的orm框架主要有greenDAO、OrmLite、AndrORM。 综合了网上的各种评价,greenDAO的运行效率最高,内存消耗最少,性能最佳。...因此决定采用greenDAO框架,对项目的orm框架进行改进。 greenDAO与ORMLite性能对比 经过两天的修改,终于将项目里的数据库相关的都优化完了。...在这过程中,发现greenDAO的性能确实不错,而且使用相当方便,不再需要涉及到任何的sql语言,可以直接通过对象类进行建表、增删改查等,尤其是api接口又方便易懂。...一、greenDAO相关 1.greenDAO官网:http://greendao-orm.com/ 2.项目下载地址:https://github.com/greenrobot/greenDAO(.../issues/34 由上可见,使用greenDAO进行数据库的增删改查时及其方便,而且性能极佳。

2.2K50

拆轮子系列之理解GreenDao框架源码

GreenDao概述 如果Android项目中要使用GreenDAO框架,需要先创建一个Java项目用于生成实体类和DAO类,然后在Android项目中使用这些类,在此过程中分别需要对Android项目添加...GreenDAO的核心包依赖和对Java项目添加generator包依赖,所以解析GreenDAO的源码需要解析两部分,而这里只解析GreenDAO核心包在Android项目中的工作原理,generator...这四个核心类的功能体系如下图所示: DaoMaster GreenDao框架管理类,该类对数据库相关管理操作进行封装 我们知道在使用GreenDAO时候,我们的入口点就是通过DaoMaster...原因是GreenDao在查询这块加了缓存,有趣吧,GreenDao在查询时使用了弱引用WeakReference,假如第一次查询时候我查询了小明这个Student的数据,那么它将把小明加入一个SparseArray...可以这么说,我们之所以使用GreenDao管理本地数据库无需与SQL语句打交道,就是因为GreenDao框架在这一层已经对大部分数据库操作SQL语句进行了封装。

1K40

GreenDao 兼容升级,保留旧数据的---全方面解决方案

//cloud.tencent.com/developer/user/1148436/activities GreenDaoCompatibleUpdateHelper 一个能帮助你成功升级基于 greenDao...几个事实 GreenDao 目前的 3.+ 版,自动生成的代码的升级方式都是先删除原来的表格,再创建新的 /** WARNING: Drops all table on Upgrade!...@Override public void onUpgrade(Database db, int oldVersion, int newVersion) { Log.i("greenDAO",...) from (A'+B') then drop (A'+B') 代码简述 基于上面的二次修改和拓展 GreenDaoCompatibleUpdateHelper.java 顾名思义,兼容旧表性质的 greenDao...因为不具备默认值而导致出现 SQLiteConstraintException: NOT NULL constraint failed 错误,解决方法,采用 Integer Boolean 类型替换,这个你只能妥协,因为 greenDao

1.3K50

GreenDao 工具类 --- 使用 Json 快速生成 Bean、表及其结构,炒鸡快!

前序 GreenDao 相信很多 Android 开发者都熟悉,不知为何物的,这里不会再介绍它,建议自行百度,介绍文很多。...GreenDao本身已经是很方便了,但我觉得还是不够方便。所以有了下面的"故事"。阅读完这个"故事",从此你使用 GreenDao 真正需要你手写的将会单表是不超过10行!...故,选择读取Json GreenDao 的默认 main 函数 public class dao { public static void main(String[] args) throws...泛型约束 上面说的 T 泛型是属于 Dao 的配置类,稍作代码分析就可以看出,GreenDao 所有生成的数据表配置类都是继承于 AbstractDao 类。...protected pushVideoDao getReadDao() { return openReadableDb().getPushVideoDao(); /** 该函数由 GreenDao

1.6K90
领券