目录
一、GreenDao简介 二、GreenDao使用步骤(重点) 三、GreenDao使用总结

正文
一、GreenDAO简介

         GreenDao是一个为了帮助Android开发者操作SqLite数据库的开源项目。SQLite数据库是一个轻量级的关系型数据库。但是,对SQLite数据库操作需要大量的额外工作,例如,写SQL语句和解析查询出来的结果是一个很繁琐的任务。GreenDao将可以为你解决这一切工作:它可以把Java对象转换成数据库表(也就是所谓大家熟悉的ORM,做过Java的同学应该知道Hibernate框架),用GreenDao可以通过java简单对象的API对数据进行更新、删除以及查询获取的java对象,让你花更多时间解决真的的业务问题。

         greenDAO is an open source project to help Android developers working with data stored in SQLite. SQLite is an awesome embedded relational database. However, developing for it requires alot of additional work. Writing SQL and parsing query results are quite tedious tasks. greenDAO will do the work for you: it maps Java objects to database tables (often called  ORM ). This way you can store, update, delete, and query for Java objects using a simple object oriented API. Save time and focus on real problems!




DAO Code Generation Project


Core Classes



GreenDao的设计目标
  • 最大的性能(最快的Android ORM解决方案)
  • 易用的API
  • 高度优化
  • 最小的内存消耗
  • 最小的项目文件,专注于最需要部分
  • Maximum performance (probably the fastest ORM for Android)
  • Easy to use APIs
  • Highly optimized for Android
  • Minimal memory consumption
  • Small library size, focus on the essentials

      特征
      对象/映射关系(ORM)

      GreeDao的本质提是提供对象接口进行数据存储到SQLite关系数据库中,仅仅定义java模型,并且GreenDao将创建java对象实体和DAO,Dao封装了许多繁琐的代码,甚至,GreeDao提供先进的ORM features,像Session cache,eager loading和active entities。
       Object/relation mapping (ORM)

      greenDAO’s essence is offer an object oriented interface to data stored in the relational database SQLite. Just define for data model, and greenDAO will create Java data objects (entities) and DAOs (data access objects). This will save you a lot of boring code that just moves data back and forth. Beyond that, greenDAO offers some advanced ORM features like a session cache, eager loading, and active entities.


      性能
       GreenDao性能不必文字表述,直接上图,一目了然:
       
    
二、GreenDao使用步骤(重点)
1、在AndroidStudio新建Android项目。
2、在该项目新建一个与java文件夹平级的java-gen文件夹
3、在该Android项目的build.gradle文件添加以下语句:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:recyclerview-v7:22.2.0'
compile 'com.android.support:cardview-v7:22.2.0'
compile 'com.github.bumptech.glide:glide:3.6.0'
compile 'de.hdodenhof:circleimageview:1.3.0'
compile 'com.android.support:support-v4:22.2.0'
compile 'com.github.traex.rippleeffect:library:1.3'
compile 'de.greenrobot:greendao:2.0.0'
compile 'com.umeng.analytics:analytics:latest.integration'
}
4、在该Android项目的build.gradle文件添加以下语句:
sourceSets {
main {
java {
srcDir 'src/main/java'
srcDir 'src/main/java-gen'
}
}
}
5、然后,再新建一个生成器java项目
6、在该项目的build.gradle文件添加以下语句:
                                           dependencies                       {                                                                 compile fileTree(                      dir                      :                       'libs'                      ,                       include                      : [                      '*.jar'                      ])                                                                 compile                       'de.greenrobot:greendao-generator:2.0.0'                                                                }                                                                                                                                                                                         7、新建带有main函数的类,编写相关代码,运行改类会在相应的Android项目的java-gen文件夹下生成java对象、javaDAO、DAOSession和DAOMaster类                
public class GreenDaoGeneraterDemo {

public static void main(String[] args) throws Exception {

Schema schema = new Schema(2, "com.bluesky.gzrszp");
addArticle(schema);
new DaoGenerator().generateAll(schema, "../AisenWeiBo/gzrszp/src/main/java-gen");

}
/**
* 数据库对应表实体
* @param schema
*/
private static void addArticle(Schema schema) {
Entity note = schema.addEntity( "GreenArticle");
note.addIdProperty();
note.addStringProperty( "title").notNull();
note.addStringProperty( "href");
note.addStringProperty( "date");
note.addStringProperty( "content");
note.addStringProperty( "color");
note.addIntProperty( "position");
}
}
8、在相应的Android项目java-gen文件夹下看到生成对应的java对象、javaDAO、DAOSession和DAOMaster类


9、在android项目中就可以进行数据的各种操作了
三、GreenDao使用总结
1、greenDao比较烦人就是多一个生成器java项目。但是,这也正是为什么GreenDao比其他的ORM库快得原因所在。 2、生成器java项目和相应的Android项目最好在同一个文件下 3、
sourceSets {
main {
java {
srcDir 'src/main/java'
srcDir 'src/main/java-gen'
}
}
}
这个代码要放在build.gradle的android标签内。我就是粗心,放在android标签外,然后,明明看到java-gen下有相应的代码类,但是,在使用的地方不能引用找不到该类的错误提示。务必不要犯我同样错误!!!


4、如果新增字段、修改字段或者删除字段,要重新删除数据库或者表。这样后面操作才不会出现错误。




更多相关文章

  1. Android使用AnalogClock和DigitalClock
  2. Android(安卓)使用SQLiteDatabase操作SQLite数据库(一)
  3. Android(安卓)Handler
  4. Android(安卓)Volley完全解析(二),使用Volley加载网络图片
  5. android 图片加载和缓存开源项目 Picasso
  6. 这款开源 Android(安卓)实时投屏软件是 Qt 做的
  7. Message Android的享元模式
  8. Google 新物联网平台初体验—Android(安卓)Things
  9. JAVA与Android(安卓)世界级序列化危机与应对方案

随机推荐

  1. Android(安卓)Dialog 创建上下文菜单
  2. android 计算器,纯手打,功能实现了,bug可能
  3. android创立输入对话框
  4. android 进度对话框 圈
  5. android Animation介绍
  6. Android单击屏幕获得坐标,屏幕多点触摸测
  7. Android学习笔记(十九)
  8. 深入理解Android(安卓)Notifiction机制
  9. Android(安卓)RecyclerView 间距全适配
  10. Android(安卓)- 禁止Gridview滚动