ORM框架--GreenDao 3.0基本使用指南
0. ORM框架--GreenDao 3.0基本使用指南
1. Gradle 的配置
这里可以参照官方的文档进行最新的配置(本示例的版本等你看到可能就不是最新的了),但是值得注意的一点是,
GreenDao 3.0
与之前的变化比较大,所以用法也区别比较大,建议在搜索时加上版本号3.0
进行更精细的搜索
在项目(非Module)的build.gradle
文件中:
buildscript {
repositories {
jcenter()
mavenCentral() // 添加仓库地址
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // 添加greendao插件
}
}
在Module级别的 build.gradle
文件中:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // 添加插件
dependencies {
compile 'org.greenrobot:greendao:3.2.2' // 添加库
}
参照官方Github连接: https://github.com/greenrobot/greenDAO 更改为最新配置(示例为
3.2.2
)
2. 配置数据库信息
android {
....
greendao {
schemaVersion 1
daoPackage 'com.yourpackagename.greendao.gen'
targetGenDir 'src/main/java'
//targetGenDirTest:设置生成单元测试目录
//generateTests:设置自动生成单元测试用例
}
...
}
daoPackage 'com.yourpackagename.greendao.gen'
指定greendao自动生成文件的存放路径,我个人喜欢起名为greendao.gen
greendao
表示使用的是greendao这个第三方库
gen
表示自动生成,不要手动更改
前面加上自己的包名,这个实际就是一个路径。怎么放按你的习惯和团队规范。
3. 编写实体bean
配置完上面的信息后,点击Sync Now
同步一下工程,然后进行实体的编写,这个过程长短依托网络等因素。
注意:
如果同步后没有生成代码,最好的方法就是把项目运行一遍!
/**
* Created by didikee on 2017/9/7.
*/
@Entity
public class User {
@Id(autoincrement = true)
private Long id = null;
private Long time;
private String name;
private Boolean sex;
@Generated(hash = 1524850927)
public User(Long id, Long time, String name, Boolean sex) {
this.id = id;
this.time = time;
this.name = name;
this.sex = sex;
}
@Generated(hash = 586692638)
public User() {
}
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public Long getTime() {
return this.time;
}
public void setTime(Long time) {
this.time = time;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public Boolean getSex() {
return this.sex;
}
public void setSex(Boolean sex) {
this.sex = sex;
}
}
注意点:
- 类需要加
@Entity
注解 - id 类型必须为:
Long
而不是Long
(这个两个的区别大家肯定知道,容易手误而已,倒是插入数据崩溃) - 如果要实现id自增,在创建实体时id为null即可。
4. 开始操作数据
我习惯写个统一的类管理各类实体Dao
/**
* Created by didikee on 2017/7/19.
*/
public class GreenDaoManager {
private final static String dbName = "d_db";
private static GreenDaoManager mInstance;
private DaoMaster.DevOpenHelper openHelper;
private Context context;
private GreenDaoManager(Context context) {
this.context = context;
openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);
}
/**
* 获取单例引用
* @param context
* @return
*/
public static GreenDaoManager getInstance(Context context) {
if (mInstance == null) {
synchronized (GreenDaoManager.class) {
if (mInstance == null) {
mInstance = new GreenDaoManager(context);
}
}
}
return mInstance;
}
public InstaMediaDao getInstaMediaDao() {
SQLiteDatabase writableDatabase = openHelper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(writableDatabase);
DaoSession daoSession = daoMaster.newSession();
return daoSession.getInstaMediaDao();
}
public UserDao getUserDao() {
SQLiteDatabase writableDatabase = openHelper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(writableDatabase);
DaoSession daoSession = daoMaster.newSession();
return daoSession.getUserDao();
}
}
使用就比较简单了,调用对用实体Bean对应的Dao
的方法即可。
例如,查询:
GreenDaoManager.getInstance(this).getUserDao().queryRaw(String where, String... selectionArg);
其他的增删改查就是api的熟悉问题了,基本上也和sqlite
差不多,习惯就ok了。
网上其他的教程很多,也可参考。
ORM框架--GreenDao 3.0基本使用指南的更多相关文章
- [Android]Android端ORM框架——RapidORM(v2.0)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5626716.html [Android]Android端ORM ...
- [Android]Android端ORM框架——RapidORM(v1.0)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4748077.html Android上主流的ORM框架有很多 ...
- 数据库ORM框架GreenDao
常用的数据库: 1). Sql Server2). Access3). Oracle4). Sysbase5). MySql6). Informix7). FoxPro8). PostgreSQL9) ...
- Android 数据库ORM框架GreenDao学习心得及使用总结<一>
转: http://www.it165.net/pro/html/201401/9026.html 最近在对开发项目的性能进行优化.由于项目里涉及了大量的缓存处理和数据库运用,需要对数据库进行频繁的读 ...
- 【转载】Android开源:数据库ORM框架GreenDao学习心得及使用总结
转载链接:http://www.it165.net/pro/html/201401/9026.html 最近在对开发项目的性能进行优化.由于项目里涉及了大量的缓存处理和数据库运用,需要对数据库进行频繁 ...
- ORM框架greenDao 2 (用于了解旧版本的使用方法,目前最新版本为3.2.2,使用注释的方式来生成)
摘要: Android中对SQLite数据库使用,是一件非常频繁的事情.现今,也有非常多的SQLite处理的开源框架,其中最著名的greenDao,它以占用资源少,处理效率高等特点,成为优秀的ORM框 ...
- 对象关系映射(ORM)框架GreenDao简介和基本使用
官网上的介绍,greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案. GreenDao特点 性能最大化,可能是Android平台上最快的ORM框架 易于使用的A ...
- Android 自定义Android ORM 框架greenDAO数据库文件的路径
import android.content.Context; import android.content.ContextWrapper; import android.database.Datab ...
- .NET 开源SqlServer ORM框架 SqlSugar 3.0 API
3.1.x ,将作为3.X系统的最后一个版本,下面将会开发 全新的功能 更新列表:https://github.com/sunkaixuan/SqlSugar/releases 优点: SqlSuga ...
随机推荐
- 算法之路(二)呈现O(logN)型的三个算法
典型时间复杂度 我们知道算法的执行效率,可以从它的时间复杂度来推算出一二.而典型的时间复杂度有哪些类型呢? 由上图,可以看出,除了常数时间复杂度外,logN型的算法效率是最高的.今天就介绍三种非常ea ...
- Windows下多线程数据同步互斥的有关知识
对于操作系统而言,在并行程序设计中难免会遇到数据同步和共享的问题,本文针对这个问题,以windows系统为例回顾一下资源同步的相关问题.要点如下: 1.同步和数据共享 数据征用 2.同步原语 ...
- 【java虚拟机系列】java中类与对象的加载顺序
首先了解一下Java虚拟机初始化的原理. JVM通过加装.连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用.类型的生命周期如下图所示: 装载和连接必须在初始化之前就要完成. 类 ...
- AnimatedPathView实现自定义图片标签
老早用过小红书app,对于他们客户端笔记这块的设计非常喜欢,恰好去年在小红书的竞争对手公司,公司基于产品的考虑和产品的发展,也需要将app社交化,于是在社区分享这块多多少少参照了小红书的设计,这里面就 ...
- ADFS部署过程中设置network service对证书的读取权限
今儿在部署客户正式环境的ADFS时候遇到一问题,在配置完基于声明的身份验证后通过url访问居然报错了,这干过N回的事怎么会出错了呢,百思不得其解 网页报错如下 系统日志报错如下, 回想过程中的每一步, ...
- Ubuntu中firefox设置成中文
进入 http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly 按版本选择下去,帮助(help)-->关于,查看浏览器的版本号 所以,目录是3 ...
- 我眼中的Linux设备树(二 节点)
二 节点(node)的表示首先说节点的表示方法,除了根节点只用一个斜杠"/"表示外,其他节点的表示形式如"node-name@unit-address".@前边 ...
- Oracle 中PLSQL的ftp应用
CREATE OR REPLACE PACKAGE BODY ftp AS -- ----------------------------------------------------------- ...
- GDAL中MEM格式的简单使用示例
GDAL库中提供了一种内存文件格式--MEM.如何使用MEM文件格式,主要有两种,一种是通过别的文件使用CreateCopy方法来创建一个MEM:另外一种是图像数据都已经存储在内存中了,然后使用内存数 ...
- 4.1、Libgdx的生命周期
(原文:http://www.libgdx.cn/topic/32/4-1-libgdx%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F) 一个libgdx应 ...