Android之greenDao(初识greenDao)
文章目录
- greenDao概述
- greenDao配置(Android Studio)
- greenDao简单使用
- greenDao实体类创建
- greenDao增
- greenDao删
- greenDao改
- greenDao查
- greenDao使用持续更新中。。。
greenDao概述
- greenDao简介
SQLite是一个很棒的嵌入式关系数据库。尽管如此,编写SQL和解析查询结果仍然是一项非常繁琐且耗时的任务。而greenDAO是一个针对SQLite数据库的Android ORM开源框架。通过将Java对象映射到数据库表(称为ORM,“对象/关系映射”)将使用者从中解放出来。这样,便可以通过处理Java对象来处理对应的数据库表数据。
greenDao配置(Android Studio)
- 项目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}
- 模块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'
}
- 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;}
- 创建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; // 答案
}
常见注解:
- @Entity:标注实体,生成表。
- @Id(autoincrement=true):主键(Long型),autoincrement为true时即设置自增。
- @Property(nameInDb = “USERNAME”):标注表字段名,可以自定义,默认是实体属性名大写,单词间使用下划线分割。外键不能使用此注解。
- @NotNull:属性值不能为空。
- @Transient:在表中不会创建此字段。
- @Unique:为相应列添加唯一约束,注意,SQLite会隐式地为该列创建索引。
- @Index(unique = true):为相应的列创建索引。
greenDao增
- long insert(T entity) : 插入单个实体。
- void insertInTx(T… entities):插入多个实体。
- void insertInTx(Iterable entities);
- void insertInTx(Iterable entities, boolean setPrimaryKey);
- long insertWithoutSettingPk(T entity) : 插入单个实体,无主键。
- long insertOrReplace(T entity): 插入或替换单个实体。
- void insertOrReplaceInTx(T… entities):插入或替换多个单个实体。
- void insertOrReplaceInTx(Iterable entities);
- void insertOrReplaceInTx(Iterable entities, boolean setPrimaryKey)
- void save(T entity):插入或修改指定主键的实体。
- void saveInTx(T… entities);
- void saveInTx(Iterable entities);
greenDao删
- void delete(T entity):删除单个实体。
- void deleteAll():删除所有实体。
- void deleteByKey(Long id):删除指定Id实体。
- void deleteByKeyInTx(Long…ids):删除多个指定Id实体。
- void deleteByKeyInTx(Iterable ids);
- void deleteInTx(T… entities):删除多个实体。
- void deleteInTx(Iterable entities);
greenDao改
- void update(T entity):更新单个实体。
- void updateInTx(T… entities):更新多个实体。
- void updateInTx(Iterable entities);
greenDao查
- T load(Long id):查询指定id的实体。
- List loadAll():查询所有实体。
- T loadByRowId();
greenDao使用持续更新中。。。
Android之greenDao(初识greenDao)相关推荐
- Android ORM 框架之 greenDAO 使用心得
前言 我相信,在平时的开发过程中,大家一定会或多或少地接触到 SQLite.然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等.所以,适用于 Android 的ORM ...
- Android持久化存储(4)greenDAO的使用
1.背景 在上篇博客介绍SQLite的使用我们能感觉到,虽然Android已经简化了一些SQLite的操作,提供了较为方便的API,但使用中还是需要开发者写一些SQL语言,简单而不简约,有时候只想存储 ...
- Android ORM 框架:GreenDao 数据库升级
本文作者:Speedy CSDN 专栏:blog.csdn.net/speedystone 掘金专栏:juejin.im/user/57e082- 前言 在 Android ORM 框架:GreenD ...
- 《Android 开源库》 GreenDAO 用法详解(译文)
简介 greenDAO是一个开源的Android ORM,使SQLite数据库的开发再次变得有趣. 它减轻了开发人员处理底层的数据库需求,同时节省开发时间. SQLite是一个很不错的关系型数据库. ...
- Android数据存储之GreenDao 3.0 详解
前言: 今天一大早收到GreenDao 3.0 正式发布的消息,自从2014年接触GreenDao至今,项目中一直使用GreenDao框架处理数据库操作,本人使用数据库路线 Sqlite----> ...
- GreenDao的简单使用说明(一)android studio中引入GreenDao
GreenDao是现在大家评论说在android开发中,数据库框架效率最好的一个.以前一直在使用原生的,虽然感觉什么自己都可以控制,可是写起来,改起来有点恶心,所以正好借个机会,来使用一下GreenD ...
- android sqlite assets,使用GreenDao加载assets下sqlite数据库的示例
应用场景 已有的.某类型数据(如行政区域关系)保存在sqlite中,sqlite数据库文件保存在assets目录下,APP需要读取该数据库中的数据 工具 实例 要点介绍 APP无法直接读取assets ...
- Flutter:手拉手带你极速构建漂亮的跨平台(iOS/Android)移动应用 ✿ 初识
最近,学习了一些 Flutter 相关的知识,做了如下的小移动应用,当然是一套代码即可在 iOS 平台运行,也可以在 Android 运行. 下面我将手拉手带您快速构建出漂亮的移动应用界面(如下?小视 ...
- 【Android View】初识 View
Android程序中的一个个界面都是由View组成的,下面让我们一起来了解一下View吧! View 的分类 如上图所示,系统的View大体分为两类,即View与ViewGroup,分别对应了控件与布 ...
最新文章
- python字符串截取_Python容器类型公共方法汇总
- oracle 创建表中又有表,oracle创建表
- 根据子树样本数对cart树剪枝与剪枝前后图形绘制
- JVM Attach机制实现
- C语言 函数缺省参数 - C语言零基础入门教程
- gethours_日期getHours()方法以及JavaScript中的示例
- Oracle 游标使用大全
- BeginnersBook JSP、JSTL、Servlet 教程
- 加密钱包和借记卡提供商Swipe即将发布V2版本
- win8删除后清空回收站文件怎么恢复
- Java魔法堂:自定义和解析注解
- 垂直跑马灯水平跑马灯
- 图文详解!java高级工程师简历模板
- smart原则_写给中学生:用SMART原则制定寒假计划
- 基于层次分析法(AHP)的信贷案例详解
- HTML meta 标签的使用方式总结(本文总结17中使用方式)
- 外星人笔记本没有修复计算机,外星人笔记本的使用小技巧
- 一位Java工程师的阶段性工作总结
- mysql dump 10.13 下载_mysqldump.exe 文件下载
- SpringBoot学习小结之Elasticsearch