文章目录

  • greenDao概述
  • greenDao配置(Android Studio)
  • greenDao简单使用
    • greenDao实体类创建
    • greenDao增
    • greenDao删
    • greenDao改
    • greenDao查
  • greenDao使用持续更新中。。。

greenDao概述

  1. greenDao简介
    SQLite是一个很棒的嵌入式关系数据库。尽管如此,编写SQL和解析查询结果仍然是一项非常繁琐且耗时的任务。而greenDAO是一个针对SQLite数据库的Android ORM开源框架。通过将Java对象映射到数据库表(称为ORM,“对象/关系映射”)将使用者从中解放出来。这样,便可以通过处理Java对象来处理对应的数据库表数据。

greenDao配置(Android Studio)

  1. 项目build.gradle中配置如下:
    dependencies {classpath 'com.android.tools.build:gradle:3.0.1'classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
  1. 模块build.gradle中配置:
apply plugin: 'org.greenrobot.greendao'
buildscript {repositories {mavenCentral()}dependencies {//依赖greendao插件classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'}
}greendao {schemaVersion 1 // 数据库版本号daoPackage 'com.sangto.sangtopay.entity.greendao'   // greenDao 自动生成的代码保存的包名targetGenDir 'src/main/java' //自动生成的代码存储的路径,默认是 build/generated/source/greendao.generateTests false //true的时候自动生成测试单元// targetGenDirTests:    // 测试单元的生成目录默认是 src/androidTest/java
}dependencies {compile 'org.greenrobot:greendao:3.2.2' // add librarycompile 'org.greenrobot:greendao-generator:3.2.2'
}
  1. Application中进行初始化
    // greenDao  sessionprivate DaoSession mDaoSession;public void initDatabase(){DaoMaster.DevOpenHelper openHelper = new DaoMaster.DevOpenHelper(context,"DB_NAME");Database db = openHelper.getWritableDb();DaoMaster daoMaster = new DaoMaster(db);mDaoSession = daoMaster.newSession();}public static DaoSession getDaoSession(){return mDaoSession;}
  1. 创建greenDao实体类后进行Build,程序会自动生成greenDao文件。

greenDao简单使用

greenDao实体类创建

/*** Description:  题目* Author: fpp* Date: 2018/6/5  10:59*/
@Entity
public class TopicBean  implements Serializable {static final long serialVersionUID = 42L;@Id(autoincrement=true)private Long id;private int type; // 类型private int subject;  // 科目private int chapter;  // 章节@Property(nameInDb = "QUESTION")private String title;  // 问题private String ans_type;  // 题类型  1:判断  2:单选  3:多选private String analysis;  // 官方解释private String images;  // 图片private String image_name;  // 图片名称private byte[] image_byte;  // 图片数组@Convert(columnType = String.class, converter = StringConverter.class)private List<String> answer;  // 答案
}

常见注解:

  1. @Entity:标注实体,生成表。
  2. @Id(autoincrement=true):主键(Long型),autoincrement为true时即设置自增。
  3. @Property(nameInDb = “USERNAME”):标注表字段名,可以自定义,默认是实体属性名大写,单词间使用下划线分割。外键不能使用此注解。
  4. @NotNull:属性值不能为空。
  5. @Transient:在表中不会创建此字段。
  6. @Unique:为相应列添加唯一约束,注意,SQLite会隐式地为该列创建索引。
  7. @Index(unique = true):为相应的列创建索引。
greenDao增
  1. long insert(T entity) : 插入单个实体。
  2. void insertInTx(T… entities):插入多个实体。
  3. void insertInTx(Iterable entities);
  4. void insertInTx(Iterable entities, boolean setPrimaryKey);
  5. long insertWithoutSettingPk(T entity) : 插入单个实体,无主键。
  6. long insertOrReplace(T entity): 插入或替换单个实体。
  7. void insertOrReplaceInTx(T… entities):插入或替换多个单个实体。
  8. void insertOrReplaceInTx(Iterable entities);
  9. void insertOrReplaceInTx(Iterable entities, boolean setPrimaryKey)
  10. void save(T entity):插入或修改指定主键的实体。
  11. void saveInTx(T… entities);
  12. void saveInTx(Iterable entities);
greenDao删
  1. void delete(T entity):删除单个实体。
  2. void deleteAll():删除所有实体。
  3. void deleteByKey(Long id):删除指定Id实体。
  4. void deleteByKeyInTx(Long…ids):删除多个指定Id实体。
  5. void deleteByKeyInTx(Iterable ids);
  6. void deleteInTx(T… entities):删除多个实体。
  7. void deleteInTx(Iterable entities);
greenDao改
  1. void update(T entity):更新单个实体。
  2. void updateInTx(T… entities):更新多个实体。
  3. void updateInTx(Iterable entities);
greenDao查
  1. T load(Long id):查询指定id的实体。
  2. List loadAll():查询所有实体。
  3. T loadByRowId();

greenDao使用持续更新中。。。

Android之greenDao(初识greenDao)相关推荐

  1. Android ORM 框架之 greenDAO 使用心得

    前言 我相信,在平时的开发过程中,大家一定会或多或少地接触到 SQLite.然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等.所以,适用于 Android 的ORM  ...

  2. Android持久化存储(4)greenDAO的使用

    1.背景 在上篇博客介绍SQLite的使用我们能感觉到,虽然Android已经简化了一些SQLite的操作,提供了较为方便的API,但使用中还是需要开发者写一些SQL语言,简单而不简约,有时候只想存储 ...

  3. Android ORM 框架:GreenDao 数据库升级

    本文作者:Speedy CSDN 专栏:blog.csdn.net/speedystone 掘金专栏:juejin.im/user/57e082- 前言 在 Android ORM 框架:GreenD ...

  4. 《Android 开源库》 GreenDAO 用法详解(译文)

    简介 greenDAO是一个开源的Android ORM,使SQLite数据库的开发再次变得有趣. 它减轻了开发人员处理底层的数据库需求,同时节省开发时间. SQLite是一个很不错的关系型数据库. ...

  5. Android数据存储之GreenDao 3.0 详解

    前言: 今天一大早收到GreenDao 3.0 正式发布的消息,自从2014年接触GreenDao至今,项目中一直使用GreenDao框架处理数据库操作,本人使用数据库路线 Sqlite----> ...

  6. GreenDao的简单使用说明(一)android studio中引入GreenDao

    GreenDao是现在大家评论说在android开发中,数据库框架效率最好的一个.以前一直在使用原生的,虽然感觉什么自己都可以控制,可是写起来,改起来有点恶心,所以正好借个机会,来使用一下GreenD ...

  7. android sqlite assets,使用GreenDao加载assets下sqlite数据库的示例

    应用场景 已有的.某类型数据(如行政区域关系)保存在sqlite中,sqlite数据库文件保存在assets目录下,APP需要读取该数据库中的数据 工具 实例 要点介绍 APP无法直接读取assets ...

  8. Flutter:手拉手带你极速构建漂亮的跨平台(iOS/Android)移动应用 ✿ 初识

    最近,学习了一些 Flutter 相关的知识,做了如下的小移动应用,当然是一套代码即可在 iOS 平台运行,也可以在 Android 运行. 下面我将手拉手带您快速构建出漂亮的移动应用界面(如下?小视 ...

  9. 【Android View】初识 View

    Android程序中的一个个界面都是由View组成的,下面让我们一起来了解一下View吧! View 的分类 如上图所示,系统的View大体分为两类,即View与ViewGroup,分别对应了控件与布 ...

最新文章

  1. python字符串截取_Python容器类型公共方法汇总
  2. oracle 创建表中又有表,oracle创建表
  3. 根据子树样本数对cart树剪枝与剪枝前后图形绘制
  4. JVM Attach机制实现
  5. C语言 函数缺省参数 - C语言零基础入门教程
  6. gethours_日期getHours()方法以及JavaScript中的示例
  7. Oracle 游标使用大全
  8. BeginnersBook JSP、JSTL、Servlet 教程
  9. 加密钱包和借记卡提供商Swipe即将发布V2版本
  10. win8删除后清空回收站文件怎么恢复
  11. Java魔法堂:自定义和解析注解
  12. 垂直跑马灯水平跑马灯
  13. 图文详解!java高级工程师简历模板
  14. smart原则_写给中学生:用SMART原则制定寒假计划
  15. 基于层次分析法(AHP)的信贷案例详解
  16. HTML meta 标签的使用方式总结(本文总结17中使用方式)
  17. 外星人笔记本没有修复计算机,外星人笔记本的使用小技巧
  18. 一位Java工程师的阶段性工作总结
  19. mysql dump 10.13 下载_mysqldump.exe 文件下载
  20. SpringBoot学习小结之Elasticsearch

热门文章

  1. 如何看懂MITRE安全评测报告
  2. 【Windows Server 2019】Web服务 IIS 配置与管理——配置 IIS 进阶版Ⅴ
  3. Liskov替换原则
  4. Acwing--有依赖的背包问题
  5. 2021/01/29思维导图(3)
  6. PHP 解决时间戳冲突,php 时间超出2038年 转化时间戳失败的解决方案
  7. 一段失败的管理经历,养成爱加班低效率工作习惯的人管理真的很累
  8. ggplot2画图——将筛选到的突变位点(基因)画到染色体上
  9. Directx 3D - TL渲染流水线
  10. python 画三角函数_用python画三角函数