[Google直譯]ObjectBox功能和接入說明

weixin_34208185發表於2017-11-09

移動資料庫所需的一切:

  • 超快速:我們構建ObjectBox的動力是提供最好的效能。ObjectBox勝過我們測試過的所有嵌入式資料庫(這是很多)。細節將隨之而來。
  • 物件API:沒有更多的行,列和SQL - ObjectBox是一個移動資料庫,為從零開始構建的物件(無ORM,無SQLite)。簡潔的API很容易學習,只需要你使用SQLite的一小部分程式碼。
  • QueryBuilder:使用ObjectBox,您只需在編譯時查詢具有檢查的物件。因此,您在執行時不會有更多的輸入錯誤。
  • 物件關係:物件引用/關係是內建型別; 他們是本機的參考。
    反應性:對資料變化的反應簡單而強大。使用ObjectBox中的反應資料觀察器或與RxJava整合。
  • 多平臺: ObjectBox已經支援Android和普通Java(Linux和Windows)。MacOS和iOS是路線圖上的下一個平臺。
  • 即時單元測試: 利用我們的多平臺方法,您可以在毫秒級的情況下在桌面上執行普通單元測試(無Robolectric,無儀器測試)。
  • 強大的技術: ACID屬性和多版本併發控制(MVCC)為您提供安全的事務和並行性。ACID代表:原子,Consitent,孤立,耐用。
  • 簡單的執行緒: ObjectBox返回的物件在所有執行緒中工作,沒有附加任何字串。
    沒有手動模式遷移: ObjectBox負責新增,刪除和重新命名屬性的新物件版本。
  • DaoCompat庫:已經在使用greenDAO了?這個小幫助程式庫為ObjectBox提供了熟悉的 greenDAO API。
  • 測試: 自從ObjectBox處於測試階段以來,我們已經在執行超過150.000個月活躍使用者和數千個裝置的應用程式中執行它。當然,我們有很多單元測試(> 1000個人測試)。

關於 ObjectBox 的定義

ObjectBox is a superfast object-oriented database with strong relation support. objectbox.io
What's more , it supports Java & Kotlin too.

ObjectBox 最新版本 [ 截止2017/11/08 ]

Latest version: 1.2.0 (2017/10/31)

Demo code using ObjectBox:

Playlist playlist = new Playlist("My Favorties");
playlist.songs.add(new Song("Lalala"));
playlist.songs.add(new Song("Lololo"));
box.put(playlist);
Gradle setup複製程式碼

Add this to your root build.gradle (project level):

buildscript {
    ext.objectboxVersion = '1.2.0'
    repositories {
        maven { url "http://objectbox.net/beta-repo/" }
    }
    dependencies {
        classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
    }

}

allprojects {
    repositories {
        maven { url "http://objectbox.net/beta-repo/" }
    }
}複製程式碼

And this to our app's build.gradle (module level):

apply plugin: 'io.objectbox' // after applying Android plugin複製程式碼

First steps

Prepare the BoxStore object once for your app, e.g. in onCreate in your Application class:

boxStore = MyObjectBox.builder().androidContext(this).build();
Create data object class @Entity, for example "Playlist". Then get a Box class for this entity class:

Box<Playlist> box = boxStore.boxFor(Playlist.class);複製程式碼

The Box object gives you access to all major functions, like put, get, remove, and query.

For details please check the docs.

objectbox.io/documentati…

相關文章