文档章节

GreenDao

huiyun-yoyo
 huiyun-yoyo
发布于 2017/01/20 16:06
字数 634
阅读 112
收藏 2

1.先添加依赖

第一步:在app的Build.gradle中添加如下配置:

apply plugin: 'org.greenrobot.greendao'
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
greendao{
    schemaVersion 1
    daoPackage 'com.admom.mygreendaotest.gen'
    targetGenDir 'src/main/java'
}
//schemaVersion: 数据库schema版本,也可以理解为数据库版本号
//daoPackage:设置DaoMaster、DaoSession、Dao包名
//targetGenDir:设置DaoMaster、DaoSession、Dao目录
//targetGenDirTest:设置生成单元测试目录
//generateTests:设置自动生成单元测试用例

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    testCompile 'junit:junit:4.12'

    compile 'org.greenrobot:greendao:3.2.0'
}

在工程的Build.gradle中添加如下配置:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'
    }
}

###2. 写一个实体类,点击绿色的锤子按钮,编译生成DaoMaster、DaoSeesion、ShopDao

例如:

@Entity
public class shop{
     @Id
    private Long id;//注意id主键必须用Long类型
    private String name;
}

3.在MyApplication初始化GreenDao

public class MyApplication extends Application {

    private DaoMaster.DevOpenHelper mHelper;
    private SQLiteDatabase db;
    private DaoMaster daoMaster;
    private DaoSession daoSession;

    public static MyApplication instances;

    @Override
    public void onCreate() {
        super.onCreate();
        instances = this;
        setDataBase();
    }

    public static MyApplication getInstances(){
        return instances;
    }

    private void setDataBase() {
        mHelper = new DaoMaster.DevOpenHelper(this,"notes-db",null);
        db = mHelper.getWritableDatabase();
        daoMaster = new DaoMaster(db);
        daoSession = daoMaster.newSession();
    }

    public DaoSession getDaoSession(){
        return daoSession;
    }

    public SQLiteDatabase getDb(){
        return db;
    }

}

4.调用数据库的语句

 private void searchData() {
        List<Shop> shops = shopDao.loadAll();
        String name = "";
        for (Shop s : shops) {
            name = s.getName() + ";";
        }
        result.setText(name);
    }

    private void updataData() {
        shop = new Shop((long) 22, "aaa");
        shopDao.update(shop);
    }

    private void deleteData() {
        shopDao.deleteByKey((long) 1);
    }

    private void addData() {
        shop = new Shop((long) 1, "sss");
        shopDao.insert(shop);
    }

注解

@Entity                 实体注解
@NotNull              设置表中的当前列的值不为空
@Convert             制定自定义类型
@Generated        GreenDao运行所产生的构造函数或者方法,被此标注的代码可以更新或者下次运行时清除
@Id                       主键Long型,可以通过@Id(autoincrement = true)设置自增长,通过这个注解标记的字段必 须是long,数据库中表示它就是主键,并且默认为自增长
@Index                 使用@Index作为一个属性累创建一个索引,定义多列索引(@Iink Entity#indexes())
@JoinEntity         定义表连接关系
@JoinProperty    定义名称和引用名称属性关系
@Keep                 注解的代码在GreenDao下运行时保持不变
                                      1.注解实体类:默认禁止修改此类
                                      2.注解其他代码,默认禁止修改注解的代码段
@Order                制定排序
@Property           设置一个非默认关系映射所对应的列名,默认使用的字段名。
                              例:@Property(nameInDb="name")
@ToMany            定义多个实体对应的关系
@ToOne              定义与另一个实体(一个实体对象)的关系
@Transient          添加该标记之后不会生成数据库表的列
@Unique              向数据库列添加一个唯一的约束

© 著作权归作者所有

上一篇: android常用权限
下一篇: ActionBar
huiyun-yoyo
粉丝 1
博文 43
码字总数 33793
作品 0
瑞安
程序员
私信 提问
GreenDao数据库带你出坑

现在在Android中使用的数据库一般都是用的GreenDao,我们准备使用GreenDao的时候从网上看了很多文章,感觉很多技术点都不是我们关注的重点,经过实践以后觉得好多文章的内容都不太正确。我的这...

一本未写完的书
2018/11/24
0
0
「Android」GreenDao

版本:greenDAO 3.2.2 官网:http://greenrobot.org/greendao/ GitHub:https://github.com/greenrobot/greenDAO 写在前面: 这个库极大的优化了我们使用SQLite数据库,但对SQLite数据库及其语...

为安然
2018/07/30
0
0
greenDAO的简单使用(一)

greenDAO是Android经常使用的ORM开源框架,ORM(Object-Relation-Mapping)对象关系映射,它可以帮助 Android 开发者快速将Java对象映射到SQLite数据库的表单中的ORM解决方案 greenDAO的优点...

dztai
2016/05/24
0
0
Android:greenDao与Parcelable使用总结

greenDao与Parcelable都可以实现对Object数据的存储。 1. greenDao greenDAO是一个可以帮助Android开发者快速将Java对象映射到SQLite数据库的表单中的ORM解决方案,通过使用一 个简单的面向对...

mengyrlind
2014/09/10
0
0
在gradle中使用greenDao引发的多重编译错误

在Android Studio中使用greenDao,编译时会报错 Gradle抛出部分异常如下 com.android.dex.DexException: Multiple dex files define 使用: gradlew -q dependencies 可以看到greenDao中引用了......

Linktime
2015/03/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

在Javascript中Eval函数的使用

【eval()函数】 JavaScript有许多小窍门来使编程更加容易。 其中之一就是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。 举个小例子: var the_unevaled_ans...

花漾年华
16分钟前
3
0
[日更-2019.5.22、23] Android 系统的分区和文件系统(二)--Android 文件系统中的文件

声明 Android系统中有很多分区,每个分区内的文件系统一般都不同的,使用ADB进入系统/目录下可发现挂载这很多的目录,不同的目录中可来自不同的分区及文件系统; 那么,就来分下这些目录里面...

小馬佩德罗
20分钟前
2
0
数组操作相关算法

/*数组的相关的算法操作:1、在数组中找最大值/最小值*/class Test11_FindMax{public static void main(String[] args){int[] array = {4,2,6,8,1};//在数组中找最大...

architect刘源源
今天
2
0
okhttp3 以上版本在安卓9.0无法请求数据的解决方案

应用官方的说明:在 Android 6.0 中,我们取消了对 Apache HTTP 客户端的支持。 从 Android 9 开始,默认情况下该内容库已从 bootclasspath 中移除且不可用于应用。且Android P 限制了明文流量...

chenhongjiang
今天
12
0
简单示例:NodeJs连接mysql数据库

开篇引用网上的说法: 简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于...

李朝强
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部