Upgrade to Pro — share decks privately, control downloads, hide ads and more …

greenDAO2ObjectBox

 greenDAO2ObjectBox

Yuichi Maekawa

February 15, 2017
Tweet

More Decks by Yuichi Maekawa

Other Decks in Programming

Transcript

  1. What is greenDAO and ObjectBox • Made by greenrobot •

    SQLite database • ORM • Based on code generation
  2. • Since 2011 • ~ v2 :Need to make yourself

    DAOgenerator • v3 ~ : Enable annotation • Latest version is v3.2.1
  3. • Two Important concept ◦ Schema: create db and make

    all tables and entities ◦ Entity: add properties and relations to POJO • Daos and entiries are generated by DaoGenerator
  4. v2 architecture DaoGenerator: generated class. Do not white code. DaoMaster:

    generated class. Use to get settion. DaoSession: generated class. Use to get dao. EntityDao: generated class. CRUD from database. Entity: generated entity(It has getter/setter. Editable)
  5. v3 architecture DaoGenerator: generated class. Do not white code. DaoMaster:

    generated class. Use to get settion. DaoSession: generated class. Use to get dao. EntityDao: generated class. CRUD from database. Entity: your entity. Annotate this. And generate code into this.
  6. • A new database based on greenDAO • Do not

    use SQLite • Pretty fast • Latest version is v0.9.7(beta)
  7. ObjectBox • Important concept ◦ Object(POJO) ◦ Box ◦ BoxStore(like

    db) Memo Box some Box some Box some Box BoxStore
  8. v0.9.7(beta) architecture • MyObjectBox: build BoxStore • BoxStore: provide box

    for your object. Likes database. • default.json: crucial ids here. Do not touch. • Memo: your entity. Generated CRUD methods into this. • Memo_: Property class. It is used to access member (ex. Memo_.id)
  9. Convert to ObjectBox(from v3) http://greenrobot.org/objectbox/documentation/introduction/ > Have an app with

    greenDAO? DaoCompat is for you! DaoCompat is an compatibility layer that gives you an greenDAO like API for ObjectBox. http://greenrobot.org/news/objectbox-presentation-thank-you/ > For existing apps using greenDAO Easy switch to ObjectBox
  10. Convert to ObjectBox(from v3) http://greenrobot.org/objectbox/documentation/introduction/ > Have an app with

    greenDAO? DaoCompat is for you! DaoCompat is an compatibility layer that gives you an greenDAO like API for ObjectBox. http://greenrobot.org/news/objectbox-presentation-thank-you/ > For existing apps using greenDAO Easy switch to ObjectBox
  11. Build setting buildscript { repositories { maven { url "http://objectbox.net/beta-repo/"

    } } } dependencies { classpath 'io.objectbox:objectbox-gradle-plugin:0.9.7' } allprojects { repositories { maven { url "http://objectbox.net/beta-repo/" } } }
  12. Build setting apply plugin: 'io.objectbox' dependencies { compile 'org.greenrobot:greendao:3.2.0' compile

    'io.objectbox:objectbox-android:0.9.7' compile 'io.objectbox:objectbox-daocompat:0.9.7' } objectbox { daoCompat true }
  13. Initialize MyObjectBox in Application @Override public void onCreate() { super.onCreate();

    boxStore = MyObjectBox.builder().androidContext(this).build(); //use to old interface daoSession = new DaoSession(boxStore); } public BoxStore getBoxStore() { return boxStore; } public BoxStore getDaoSession() { return daoSession; }