[关闭]
@ZeroGeek 2016-12-28T07:23:15.000000Z 字数 1818 阅读 614

GreenDao 3.0以上 使用指南

未分类


主要记录下配置和基本使用

1.工程目录的bulid.gradle

  1. buildscript {
  2. repositories {
  3. jcenter()
  4. mavenCentral()
  5. }
  6. dependencies {
  7. classpath 'com.android.tools.build:gradle:2.2.1'
  8. classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
  9. }
  10. }
  1. 主目录的bulid.gradle

添加插件

  1. apply plugin: 'org.greenrobot.greendao'

添加依赖

  1. compile 'org.greenrobot:greendao:3.2.0'
  2. compile 'org.greenrobot:greendao-generator:3.2.0'

生成代码的配置

  1. greendao {
  2. schemaVersion 1
  3. daoPackage 'com.zero.greendaodemo.gen' // 自动生成的代码目录
  4. targetGenDir 'src/main/java'
  5. }

2.编写实体

例如

  1. @Entity
  2. public class Note {
  3. @Id(autoincrement = true)
  4. private long id;
  5. private String title;
  6. private String content;
  7. // 编译后会自动生成代码
  8. }

自动生成:
DaoMaster,DaoSession,NoteDao

  1. public class App extends Application {
  2. private DaoMaster.DevOpenHelper mHelper;
  3. private SQLiteDatabase db;
  4. private DaoMaster mDaoMaster;
  5. private DaoSession mDaoSession;
  6. private static App sContext;
  7. public static App getApplication() {
  8. return sContext;
  9. }
  10. @Override
  11. public void onCreate() {
  12. super.onCreate();
  13. sContext = this;
  14. mHelper = new DaoMaster.DevOpenHelper(this, "user-db");
  15. db = mHelper.getWritableDatabase();
  16. mDaoMaster = new DaoMaster(db);
  17. mDaoSession = mDaoMaster.newSession();
  18. }
  19. public DaoSession getDaoSession() {
  20. return mDaoSession;
  21. }
  22. public SQLiteDatabase getDb() {
  23. return db;
  24. }
  25. }

可以封装DaoSeesion为成单例模式获取

  1. public class MainActivity extends AppCompatActivity {
  2. private UserDao dao;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main);
  7. dao = App.getApplication().getDaoSession().getUserDao();
  8. for (int i=0; i < 10; i++) {
  9. User user = new User();
  10. user.setName(Integer.toString(i));
  11. dao.insert(user);
  12. }
  13. }
  14. }

通过DaoSession获取对应的Dao进行数据库操作,这里最好异步操作。

Dao相关注解基本说明:

编译成功之后系统会帮助我们生成相应的构造方法和get/set方法,并且还会在我们的包下生成DaoMaster和DaoSession

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注