greenDAO

【数据库】greendao的使用(greendao+SQLite) 1.安装SDK(由于之前是java,电脑有jdk环境,省略,SDK需要配置环境,和jdk基本相同,百度就完了)操作 2.安装Android Studio 以上都可以在https://www.androiddevtools.cn/下载 3.开发登录,注册,修改密码功能 要求: 1. 在登录页面增加注册按钮,点击按钮进入注册页面, 2. 使用greendao,设计一个user基类的数据库 3. 注册页面与登录页面风格一致,但是密码输入行有2行,点击注册需要用户名和两个密码是否为空,是否符合之前的账号密 阅读详情

原荐 greenDAO讲义(一):使用篇

发表于2年前(2014-01-27 14:47)   阅读( 28715) | 评论( 11)  31人收藏此文章, 我要收藏
赞 4

      目前android开发刚学习了一个多月,最近开始研究三方开源框架的用法。了解android开发的人应该都会知道,android的数据库开发主要用到sqlite(如果这点你不清楚,那这篇文章就直接pass吧)。greenDAO应该算是当前最火的数据库开源框架了吧,它是一个移动开发的ORM(object / relational mapping)框架,至于ORM是什么,可以百度之,本人理解也不是很深,大概意思就是为懒人设计的能够将对象和关系以映射的方式表达出来。greenDAO就是如此:

    greenDAO will do the word for you: it maps Java objects to datebase tables(often called ORM). 这样开发人员就可以吧精力集中在软件开发上,减轻了"wrting sql and parsing query results" 等等这些"quite tedious tasks".

总之,一句话,greenDAO就是实现Java对象和SQLite Datebase的一个媒介人,简化了SQLite的操作。

注:官方网站http://greendao-orm.com/


1. 下载greenDAO

    要使用肯定要先下载他的软件包了,官网上有它的连接,对于marven和gradle环境直接到serarch.maven.org上下载jar包就好了。

下载的jar导入到工程里面就可以了,通常都是/libs目录下。


2. 前言

    (1)generator --- greenDAO-generator.jar

   网上使用说明很少,搜到的都是对于我这个新人来说看的云里雾里,于是本人就干脆直接看官方文档,这篇文章也是边看边写的,可能会有些混乱。

    在github上下载的实例源码以及上面图中我们都会发现,会有一个generator。比如包里面会有greendao和greendao-generator,示例工程会有DaoExample和DaoExampleGenerator两个工程。之前一直不明白,看了官方文档终于理解了。

    “In order to use greenDao in your project, you need to create a second project, the "generator project". 这个额外的工程是一个普通的java工程,而非android工程。它的任务是生成你希望的java对象所对应的DAO接口对象。


  (2)核心的class -- greenDAO.jar

    DAO的core library(greenDAO.jar)中有以下几个核心类,也是后面比用到的,先来大概了解下他们的结构吧,不然直接看他们的使用会云里雾里。


DaoMaster:一看名字就知道它是Dao中的最大的官了。它保存了sqlitedatebase对象以及操作DAO classes(注意:不是对象)。其提供了一些创建和删除table的静态方法,其内部类OpenHelper和DevOpenHelper实现了SQLiteOpenHelper并创建数据库的框架。

DaoSession:会话层。操作具体的DAO对象(注意:是对象),比如各种getter方法。

XXXDao:实际生成的某某DAO类,通常对应具体的java类,比如NoteDao等。其有更多的权限和方法来操作数据库元素。

XXXEntity:持久的实体对象。通常代表了一个数据库row的标准java properties。

如下一个实例初始化代码:

?
1
2
3
4
5
helper =  new  DaoMaster.DevOpenHelper( this ,  "notes-db" ,  null );
db = helper.getWritableDatabase();
daoMaster =  new  DaoMaster(db);
daoSession = daoMaster.newSession();
noteDao = daoSession.getNoteDao();

即:先创建了一个SQLiteOpenHelper并创建连接到一个具体数据库;再根据具体的datebase创建一个master对象用于;最后通过master创建一个数据库的会话操作。


3. 创建generator工程

(1)创建Java工程

(2)导入greenDao-generator.jar和freemarker.jar两个包。

    freemarker是一个用java写的模板引擎,它能够基于模板来生成文本输出。应该就是用来自动生成DAO文件的。eclipse下面就是在            properties --> Java build path --> libraries下面导入jar包。

(3)创建schema

    这个不知道怎么业内怎么翻译的,暂时先翻译成”框架“吧。即搭建自己应用的数据库框架,包括table。

    创建schema时需要制定数据库的版本号、默认的Java package等参数。

?
1
  Schema schema =  new  Schema( 1 ,  "de.greenrobot.daoexample" );

  默认Java package用来存放生成的entity、DAO文件、test代码。但也可以重新制定test文件的单独路径以及DAO文件的路径,代码:

?
1
2
schema.setDefaultJavaPackageTest( "de.greenrobot.daoexample.test" );
schema.setDefaultJavaPackageDao( "de.greenrobot.daoexample.dao" );


  另外,还有两个flag,用来标示entity是否是activie以及是否使用keep sections。代码:

?
1
2
schema2.enableKeepSectionsByDefault();
schema2.enableActiveEntitiesByDefault();

Keep sections:因为entity class在每次generator执行时均会覆盖原来的程序,为了能够添加用户自定义代码到entity中,需要设置该参数。只需要把自己的代码添加到下面的KEEP[]块中间就可以了。

?
1
2
3
4
5
6
7
8
// KEEP INCLUDES - put your custom includes here
// KEEP INCLUDES END
...
// KEEP FIELDS - put your custom fields here
// KEEP FIELDS END
...
// KEEP METHODS - put your custom methods here
// KEEP METHODS END

(4)创建entity

    schema中可以添加entity,简单的理解应该是entity对应一个具体的java class,entity可以添加property。Entity通常也是对应一个table。除了添加property之外,entity也可以添加to-one和to-many关系,即添加一对一的关系和一对多的关系。

    下面就直接贴一个官方示例的代码吧:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  public  static  void  main(String[] args)  throws  Exception {
         Schema schema =  new  Schema( 3 ,  "de.greenrobot.daoexample" );
         addNote(schema);
         new  DaoGenerator().generateAll(schema,  "../DaoExample/src-gen" );
  } 
  
  
  private  static  void  addNote(Schema schema) {
         Entity note = schema.addEntity( "Note" );
                 
         note.addIdProperty();
         note.addStringProperty( "text" ).notNull();
         note.addStringProperty( "comment" );
         note.addDateProperty( "date" );
  }

        系统会自动以传入的参数作为表的名字,但也可以自定义表名称:note.setTableName("NoteTable");

(5)生成DAO文件

    生成DAO文件就是使用main函数的最后一句话,其中后面的参数就是希望自动生成的代码对应的项目路径。

    new DaoGenerator().generateAll(schema, "../DaoExample/src-gen");

    注:设置的路径必须存在,否则会抛出异常。该路径是另外的工程下面的目录,当然也可以自己不这么做,只要这个目录存在就行。在schema创建的时候指定的package接口也是相对于该路径的。

    执行generator工程,会发现生成了DaoMaster、DaoSession、NoteDao、Note共4个类文件,Note是一个纯Java类,内部各种getter和setter接口均自动创建实现了。NoteDao文件则是创建Note这个表的各个接口,包括sql语句等。很神奇很方便哈!!


4. 创建基于greenDao的android工程

       完成了generator工作之后后面的东西就简单了:

    (1)创建一个android工程

    (2)插入一个Note对象:

?
1
2
3
4
5
6
7
8
DevOpenHelper helper =  new  DaoMaster.DevOpenHelper( this ,  "notes-db" ,  null );  
db = helper.getWritableDatabase();  
daoMaster =  new  DaoMaster(db);  
daoSession = daoMaster.newSession();  
noteDao = daoSession.getNoteDao();  
Note note =  new  Note( null , noteText, comment,  new  Date());  
noteDao.insert(note);  
noteDao.deleteByKey(id);

?
1
真的是so easy!!



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

greenDAO讲义(二):数据库查询篇

发表于2年前(2014-01-27 14:53)   阅读( 5516) | 评论( 4)  1人收藏此文章, 我要收藏
赞 0

上一篇中我们讲述了如何创建generator工程以及如何在android工程中使用。那么在这篇中就重点讲述下使用篇,主要针对数据库查询操作。


1. 查询 -- Queries

    1)你可以使用原生的SQl(raw sql)语句;

    2)也可以使用推荐的方法:使用greenDAO提供的QueryBuilder的API。

    3)查询还支持结果延迟加载(lazy-loading),主要为操作较大查询结果是节约内存并提高性能。


(1)QueryBuilder

    使用过sql语句查询的人都会有一种感触(主要针对不是专职开发数据库并对sql不是很熟练的人),写起来复杂、不能再第一时间发现问题(只能在运行过程中验证sql的正确性)、查找bug麻烦等等。QueryBuilder的出现就是为了解决sql使用的问题,提高开发效率。

看一个略微复杂的例子,查询first name是Joe,并在1970年10月以及之后的所有人:

QueryBuilder qb = userDao.queryBuilder();

qb.where(Properties.FirstName.eq("Joe"),

qb.or(Properties.YearOfBirth.gt(1970),

qb.and(Properties.YearOfBirth.eq(1970), Properties.MonthOfBirth.ge(10))));

List youngJoes = qb.list();


不用我来解释了吧。


(2)Lazylist

    greenDAO支持返回唯一查询结果(如果没有返回null) ---- 调用Query或QueryBuilder的unique()方法;

    也支持返回list ---- 调用list()方法。

    当不希望返回null作为结果时,则调用uniqueOrThrow()方法,当结果null时将直接抛出异常。

返回多个结果解释:

list():     所有entity均会被加载到内存中。结果仅是一个简单的ArrayList。使用最简单。

listLazy():    查询结果会根据需要加载到内存中。列表中的元素仅在accessed for the first time,它才会被加载并缓存。该方法必须主动关闭(Must be closed)。

listLazyUncached():    虚拟的结果列表,任何对元素的方法实际都会到数据库中去加载数据。Must be closed

listIterator():    根据需要迭代结果(lazily)。数据不缓存。Must be closed


在greenDAO实现中,后3中其实都使用的LazyList类。为了实现根据需要加载,其内部实现上是保存了数据库cursor的引用。这也是为何这3中方式must be closed,其就是为了释放内部cursor和迭代器(通常是在try-finally块中完成close)。


(3)Query

    解释:Query类代表了一个可以被重复执行的查询。在QueryBuilder内部其实也是会定义一个Query并执行完成查询。

    这将带来极大地方便,因为任何人都不希望在每次查询的时候总是写一遍query代码。同时Query还可以根据需要改变参数。如下实例代码:

    使用Query对象查询名为Joe并出生在1970年的人:

Query query = userDao.queryBuilder().where(

Properties.FirstName.eq("Joe"), Properties.YearOfBirth.eq(1970))

.build();

List joesOf1970 = query.list();

然后想再查询出生在1977年之后并叫Marias的人:

query.setParameter(0, "Maria");

query.setParameter(1, 1977);

List mariasOf1977 = query.list();

注意:参数的编号是创建query所设置的顺序。


(4)多线程查询

    有时我们希望在多线程中执行查询。从greenDAO 1.3版本开始,实例化Query对象均会绑定到其自己的线程,这样我们就可以安全的设置Query参数,因为其他线程无法影响到。如果其他线程使用别的线程的query(比如设置参数、执行查询)将会抛出异常。因此,我们也不需要做同步工作,而且不要加锁,因为加入相关的事务用到了该Query对象将导致死锁。

    为完全地避免可能产生的死锁,1.3版本引入了forCurrentThread()方法。该方法将返回本线程内的Query实例,每次调用该方法时,参数均会被重置为最初创建时的一样。


(5)原生sql查询

    推荐的方法执行原生sql语句是通过QueryBuilder和WhereCondition.StringCondition。如下代码:

Query query = userDao.queryBuilder().where(

new StringCondition("_ID IN " + "(SELECT USER_ID FROM USER_MESSAGE WHERE READ_FLAG = 0)").build();

    假如QueryBuilder没有提供你需要的特性,你也可以使用queryRaw() 和 queryRawCreate() 方法。具体就不再详细介绍了。


(6)删除操作(delete query)

    删除操作会删除所有满足条件的实体。为实现批量删除(bulk delete),调用QueryBuilder的 buildDelete方法并执行DeleteQuery。该部分API还不稳定,可能会改变就不介绍了。


(7)问题定位(日志)

    你可能会遇到查询结果并不是预期的那样,这时候你就可以设置两个静态flag参数来打日志定位问题:

QueryBuilder.    LOG_SQL         =         true    ;
QueryBuilder.    LOG_VALUES         =         true    ;

    这将会将产生的sql命令以及传递的参数以日志方式输出,由此方便程序员定位问题。




使用 GreenDAO 构建高效 Android 数据库操作 创建 PersonDB.java 文件中,定义 GreenDAO 注解的实体类。通过 GreenDAO,可以轻松实现高效的数据库操作,简化开发流程并提升应用性能。本文介绍了如何在 Android 项目中集成 GreenDAO,定义实体类,生成 DAO 类以及进行基本的数据库操作。希望这篇文章能帮助你在项目中更好地使用 GreenDAO,实现高效的数据持久化管理。 阅读详情

相关推荐

GreenDao、Ormlite、Realm性能对比

GreenDao、Ormlite、Realm性能对比        该博文为我本人亲测,代码编写过程中使用到了百度上很多大神的demo,如http://blog.youkuaiyun.com/shareye1992/article/details/50789216,http://blog.youkuaiyun.com/hedong_77/article/details/53167774,http://blog.csdn

firesmog的博客 9800

Android ORM框架 GreenDao 的使用详解

一、前言 关于 Android 中常用的数据存储方式我们前面已经讲了 Sp 存储 和 文件存储,但是对于数据量比较大,并且结构复杂的数据我们想要存储只能通过数据库进行处理,Android 中提供了一个 SQLite 数据库,但是使用起来比较繁琐和复杂,所以 Android 又推出了 Room 持久性库,Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。但是我们今天不讲 Room 这个组件(以后讲 Jetpack

weixin_38478780的博客 1165

GreenDao的简单封装

一.GreenDao简介 最近在写数据库的框架,用的是SQLite原生语言进行封装的,感觉非常的繁琐,效率也低,所以就来参考下GreenDao的做法,学习一下他的用法,给他简单封装, 便于后续的使用。 GreenDAO是一个开源的安卓ORM框架,能够使SQLite数据库的开发再次变得有趣。它减轻开发人员处理低级数据库需求,同时节省开发时间。 SQLite是一个令人敬畏的内嵌的关系数据库...

掉进Android的深坑 1884

【框架】GreenDao数据库框架

一、背景 Android数据库SQLite原生API SqliteOpenHelper不友好,所以出现了许多ORM框架来帮助我们处理数据库操作。所谓ORM框架,即Object-Relational Mapping,它的作用是在关系型数据库和对象之间做一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。而GreenDao是基于Android的ORM框架中的佼佼者,优点如下: 性能(可能是Android上最快的ORM) 易用性(..

weixin_43526787的博客 2094

Android ORM 框架之 greenDAO

Android ORM 框架之 greenDAO

是阿超 3042

保姆级教程:用Python+MM-Agent搭建自己的数学建模AI助手(支持GPT-4o/DeepSeek)

本文提供了一份详细的教程,教你如何使用Python和MM-Agent框架搭建数学建模AI助手,支持GPT-4o和DeepSeek-R1等LLM后端。从环境配置、HMML知识库集成到多LLM适配和建模流程实现,手把手教你构建智能建模系统,提升数学建模效率。

k6l7m8n9的博客 452

greendao连接mysql_ORM 框架之 greenDAO 使用心得

前言我相信,在平时的开发过程中,大家一定会或多或少地接触到SQLite。然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等。所以,适用于 Android 的ORM框架也就孕育而生了,现在市面上主流的框架有 OrmLite、SugarORM、Active Android、Realm 与 GreenDAO。而今天的主角便是greenDAO,下面,我将详解地介绍如何...

weixin_42593549的博客 238

学习海康VisionMaster之顶点检测

2:应用场景:海康VisionMaster的顶点检测功能在工业视觉检测中具有广泛的应用场景,尤其在精密制造、电子元件检测和机械加工等领域,其通过高精度定位物体的关键点(如角点、交点或边缘顶点)来实现自动化测量与质量控制。基本参数这里就是画ROI,设定跟踪参数和之前的工具是一样的方法,这里画的方向需要注意,如下图所示,边缘的扫描方向正好对应需要查找的边缘点。一个不是很规则的物体需要检测一个凸台的顶角坐标,其实靠边缘与边缘交点是不太稳定的,如下图所示,边缘很短,很容易产生误抓边缘。1:什么是顶点检测?

yuhouxiyang的专栏 1523

GreenDao使用

GreenDao是一个关系型数据库,可方便的利用对象操作数据库,更可以利用其ORM的继承特性,整合代码编写。个人感觉就是给对于sql不熟练的我提供一个可以操作数据库的捷径。 GreenDao 官方地址:http://greenrobot.org/greendao/ GreenDao gitHub地址:https://github.com/greenrobot/greenDAO GreenDa

小磊's blog 5564

别再让会议变‘回音壁’:手把手教你调优WebRTC的AEC3回声消除(附实战代码)

本文深入解析WebRTC的AEC3回声消除技术,提供从参数调优到声学环境适配的实战指南。通过诊断回声特征、解剖核心参数(如filter.length_blocks和delay_estimate_smoothing)以及应对特殊场景(如密闭空间与开放办公区),帮助开发者有效解决视频会议中的回声问题,提升语音通信质量。附有实战代码和调试工具,适合需要优化实时通信体验的开发者。

weixin_29220405的博客 171

Android UI 组件系列(二):Button 进阶用法

在这篇博客中,我们深入探讨了 Button 的进阶用法,重点介绍了如何通过 事件处理 来响应用户的操作,如何使用 自定义样式 来提升按钮的外观,并利用 StateListDrawable 来管理按钮在不同状态下的表现。这些技巧能够帮助你打造更具交互性、视觉吸引力和动态响应的按钮,提升用户体验。

weixin_39339407的博客 1625

GreenDAO

https://github.com/greenrobot/greenDAO 前言 我相信,在平时的开发过程中,大家一定会或多或少地接触到 SQLite。然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等。所以,适用于 Android 的ORM 框架也就孕育而生了,现在市面上主流的框架有 OrmLite、SugarORM、Active Andro

欢迎加入Android老司机学院 482266514(技术交流群)密码优快云 1万+

一个代码循环计算水在石墨烯表面的接触角

石墨烯接触角

Rockyoung 2574

GreenDao 简单封装

AbstractDaoSession提供简单的操作表的接口 DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(context, "arnold.db"); DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb())...

诺诺诺诺诺诺诺诺的博客 8101

结构力学本构模型:复合材料模型:复合材料热力学行为技术教程_2024-08-07_06-54-53.Tex

热塑性复合材料是一种由热塑性树脂基体和增强纤维组成的复合材料。与热固性复合材料不同,热塑性复合材料在加热时可以软化,冷却时硬化,这一过程可以重复进行,因此它们具有可回收和可再加工的特性。热塑性树脂,如聚酰胺(尼龙)、聚碳酸酯、聚醚醚酮(PEEK)等,与碳纤维、玻璃纤维等增强材料结合,可以制备出具有高强度、高刚度和良好耐热性的复合材料。热粘弹性理论是研究材料在温度变化和时间依赖性载荷作用下的变形和应力响应。复合材料,由于其独特的微观结构,展现出复杂的热粘弹性行为。

808

中国各城市土地利用类型(城市功能)数据集(shp)

中国各城市土地利用类型(城市功能)数据集时间:2018年全国范围的城市用地类型数据(居住/商业/交通用地等共计11类)分类:居住用地、商业用地、工业用地、医疗设施用地、体育文化设施用地、交通场站用地、绿地等用地类型含城市编码、一级分类5个、二级分类11个1、上海市。

你好,我是小张同学! 1337

GreenDao 使用教程

在平时的开发过程中,大家一定会或多或少地接触到 SQLite。然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等。 所以,适用于 Android 的ORM 框架也就孕育而生了,现在市面上主流的框架有 OrmLite、SugarORM、Active Android、Realm 与 GreenDAO。 GREENDAO 设计的主要目标: - 一个精简的库 -

auiyhnlk的博客 539

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

GreenDao3的初步使用

1.GreenDao简介。 现在程序中对于数据库的操作是必不可少的,而且占据整个程序的重要一个部分。而程序员掌握数据库的操作是很重要的一项技能,但是数据库的代码往往重复性很高,一遍遍的重复着相同的操作步骤并不是很明智的选择。这时候一个ORM框架就显得极为重要了,一个好的ORM框架可以为程序的开发节省大量的时间,并且好的框架还能够发挥出更大的性能和效率,所以如果并没有过硬的技术,去选择一个良好的O

繁城落叶 2669

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

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

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

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

GreenDao使用踩过的坑

本来想用litePal,看了郭大婶的说明,真的是好用! 后来发现网上说比较流行的还是 GREENDAO,且效率不错! 不用管那么多了,直接用吧. ---------------------------------------------------------------------------------- 看了一天的 GREENDAO,还是没有敢动手,那就动起来! ----...

anju2054的博客 403

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

GreenDao的使用详解

在Android实际开发中,当要存储一些数据时,大家首先会想到的是什么存储形式?有人说数据库有人说文件。当然两种方式都行。今天就给大家介绍介绍第三方框架GreenDao的使用。好费话不多说,正式开始介绍。       GreenDao是一个轻量级的数据库,当然也是SQlite数据库。它将我们需要操作的SQL语句以对象的形式进行了细致的封装,以方便开发者的开发。项目中引入GreenDao数据库只要

Jamy博客 8079

greendao

1.添加依赖 在Model 下 bulid.gradle文件下的dependencies下添加所需依赖 compile 'org.greenrobot:greendao:3.2.2' // add library compile 'org.greenrobot:greendao-generator:3.2.2' 这句话是在上边写的 小渣渣啊→_→ apply plugin: 'org.gree...

qq_42785994的博客 281

greenDAO 查询

greenDAO、OrmLite、ActiveAndroid的对比图 3、支持加密 三、greenDAO集成 1、设置仓库与插件(Project: build.gradle) 1 buildscript {2 repositories {3 jcenter()4 mavenCentral() // add repository5 }6 depen...

hcq__yy的专栏 1534

Android GreenDao浅析

GreenDAO简介 GreenDao是一个为了帮助Android开发者操作SqLite数据库的开源项目。SQLite数据库是一个轻量级的关系型数据库。但是,对SQLite数据库操作需要大量的额外工作,例如,写SQL语句和解析查询出来的结果是一个很繁琐的任务。GreenDao将可以为你解决这一切工作:它可以把Java对象转换成数据库表(也就是所谓大家熟悉的ORM,做过Java的同学应该知道Hib

Picasso_L的专栏 2921

GreenDAO 用法详解

转载:https://blog.youkuaiyun.com/poorkick/article/details/55271660 简介 greenDAO是一个开源的Android ORM,使SQLite数据库的开发再次变得有趣。 它减轻了开发人员处理底层的数据库需求,同时节省开发时间。 SQLite是一个很不错的关系型数...

My Note 2740
上一篇: Data Binding的报错集合: 例如Error:(10, 54) 错误: 程序包com.kodulf.recyclerviewdatabinding.databinding不存在
下一篇: RecyclerView 和 DataBinding
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值