greenDao 引入 eclipse 中使用

1 篇文章 0 订阅
1 篇文章 0 订阅

1. 前言

之所以写这篇博客,是希望我的经历能给各位入门greenDao3.0以上版本提供便捷。简单描述一下今天的经历:
事情的起因是Android项目中需要用到一款orm工具,greenDao的热度让我选择学习它。官方文档中这样写道:

greenDAO’s Features at a glance

  • Maximum performance (probably the fastest ORM for Android); our benchmarks are open sourced too
  • Easy to use powerful APIs covering relations and joins
  • Minimal memory consumption
  • Small library size (<100KB) to keep your build times low and to avoid the 65k method limit
  • Database encryption: greenDAO supports SQLCipher to keep your user’s data safe
  • Strong community: More than 5.000 GitHub stars show there is a strong and active community

官方对于其优点有更多的文字解释,然而我看中的是其Easy to use
接着我在官方文档上找到了其gitHub地址,先不管这么多,Down下源码再说。
幸福的是,官方文档还给出了使用向导,这下可以省下不少解读源码的过程。如下:

How to get started with greenDAO, Documentation

For first steps with greenDAO, please check the documentation, especially the getting started guide and the introduction tutorial.

真是福音。。。

当点开向导的时候,一脸蒙*,顶头的是三个连接,指向gitHub源码的地址,下文给出的一些“莫名其妙”的代码(当然这是开始的时候),说好的 easy to use 呢。不甘心的继续找,终于找到了引入方式,怪自己打开的方式不对。

// In your root build.gradle file:
buildscript {
    repositories {
        jcenter()
        mavenCentral() // add repository
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
    }
}

// In your app projects build.gradle file:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin

dependencies {
    compile 'org.greenrobot:greendao:3.2.2' // add library
}

谔谔,好吧,非maven项目请绕行,非AS项目请勿入。
当然不可能,虽说现在maven构建项目已经是主流,但是不可能大大小小的项目都用maven构建,eclipse也没用完完全全消失,肯定会有解决方案的。

不少大神已经在论坛上发表了相关文章(我参考的博文),度娘了一番,找到不少方案,实行起来却是遇到不少麻烦,各中报错,各种度娘依旧没用,难到我的eclipse和博主的不一样???当然不是,工具的问题很好解决,问题出在了源码上,我犯了一个很严重的错误,忽略版本号!!!花了大量的时间。
大神的博文版本多为3.0一下的,而我下载的是最新的源码,官方也有说明(后来研究的时候才发现)3.0之后有了改变, ,没有参考,自己摸索吧。

好了,废话不多说,进入正题:

2. greenDao 如何在eclipse中引入:

2.1 下载greenDao相关jar包

和之前博主使用的方法有所差别,我在研究源码的过程中,找到了jar包,方便的也就直接给大家推荐jar包,虽然源码和jar包是一回事,但是在使用eclipse的时候,添加jar包总感觉会比添加依赖项目方便。

下载地址:
http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.greenrobot%22
(这是maven项目的jar包仓库,所有的jar包都在里面,以后有找不到jar包的朋友可以来这里面找)

下载内容:greenDao-3.2.2版本(这是我所看见最新的)
需要下载的jar包有3个,注意都下同一版本的

2.2 下载 freemarker.jar

这是代码生成器依赖的jar包,关于代码生成器,之后在解释。

下载地址(同样在仓库中下载)
http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.freemarker%22%20AND%20a%3A%22freemarker%22

下载内容:下一个就行(我使用的是2.3.27版本)

2.3 配置代码生成器(GreenDao_Generator_Test)

代码生成器是一个java工程
新建java工程,导入 greendao-generator.jar (这里我省略写版本号)以及freemarker.jar ,目录结构如下:

这里写图片描述

新建一个主类,用于执行程序,主类代码如下:
(这个程序用于生成实体类以及实体数据库操作的dao类)

import org.greenrobot.greendao.generator.DaoGenerator;
import org.greenrobot.greendao.generator.Entity;
import org.greenrobot.greendao.generator.Schema;

public class DaoGeneratorTtest {
    public static void main(String[] args) throws Exception {
        // 设置实体类包名(可自行修改)
        Schema schema = new Schema(1, "com.example.bean");
        // 设置DAO层包名(可自行修改)
        schema.setDefaultJavaPackageDao("com.example.dao");
        // 定义实体类
        addNote(schema);
        // 生成代码后的存放路径,这里放到了 android 项目(GreenDaoTest)下的src 目录下
        new DaoGenerator().generateAll(schema, "../GreenDaoTest/src");

    }   

    private static void addNote(Schema schema) {
        // 实体类名
        Entity person = schema.addEntity("Person");
        // 添加id
        person.addIdProperty();
        // 添加 firstname 字段
        person.addStringProperty("firstname").notNull();
        // 添加 lastname 字段
        person.addStringProperty("lastname");
        // 添加 age 安段
        person.addStringProperty("age");
    }

}
2.4 配置android项目(GreenDaoTest)

在使用greendao的android项目中导入greendao.jar以及greendao-api.jar

只进行了导包的android项目如图所示:

这里写图片描述

2.5 运行 java项目(GreenDao_Generator_Test)

出现如下图所示的输出,表示代码生成器成功运行了:

这里写图片描述

这时按F5刷新eclipse,再来看看 android项目 (GreenDaoTest) :

这里写图片描述

com.example.bean 包以及 com.example.dao 包 都是在代码生成器程序中自己配置的

到此为止,已经成功把GreenDao引入了android项目中,需要增删改查等数据库操作,dao包中都已经生成好了,使用的时候调用就行。

这才是真的实现了 easy to use !!!

3. 一些额外的解释

3.1 源码和jar包的对应关系

这里写图片描述

DaoCore是源码包
DaoGenerator是代码生成器的代码包
greendao-api 实体注解支持 (org.greenrobot.greendao.annotation包就在里面)
其他的是一些示例工程以及测试文件,入门请忽略,直接去看给出的示例会让人更懵。。。(好吧,理解之后示例确实很有帮助)

不得不提一下的是 注解支持的 greendao-api,网上的教程多没有涉及这一部分,导致开始的报错也是无从解决,找了无数遍源码也找不到 org.greenrobot.greendao.annotation包,后来研究的时候,才发现,原来这个东西藏在这里,这也是多出 greendao-api.jar 的原因。

3.2 为什么要使用代码生成器

代码生成器只是工具,方便开发者写出实体类以及数据库操作,当然,深入理解greendao的大牛可以手写这些代码。

每次加入实体类,先在代码生成器中用几行代码生成所需要的实体类以及相关操作类。

简单的生成操作已经在上面测试的代码生成器工程中给出 addNote()方法

3.3 相关链接

gitHub地址:https://github.com/greenrobot/greenDAO
greenDao官网:http://greenrobot.org/greendao/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值