objectbox基礎
參考鏈接
- 官網地址 http://objectbox.io
- github地址 https://github.com/objectbox/objectbox-java
- https://www.jianshu.com/p/24b7ffbbe383
- demo下載 https://files.cnblogs.com/files/bruce2020/objectbox-example.zip
1. objectbox特性
- 超快 objectbox優於測試過的所有嵌入式數據庫
- 面向對象的api 沒有ORM,沒有SQLite,簡潔的api
- 自動升級 可以直接在對象上進行刪除修改等操作
其它參考官網介紹
2.如何使用?
1.在項目build.gradle添加對應引用
buildscript {
ext.objectboxVersion = '1.4.0'
repositories {
jcenter()
maven { url "http://objectbox.net/beta-repo/" }
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
}
}
allprojects {
repositories {
jcenter()
maven { url "http://objectbox.net/beta-repo/" }
}
}
2.在app的 build.gradle文件添加引用
apply plugin: 'com.android.application'
apply plugin: 'io.objectbox'
dependencies {
compile "io.objectbox:objectbox-android:$objectboxVersion"
annotationProcessor "io.objectbox:objectbox-processor:$objectboxVersion"
}
3.定義要保存在數據庫中的對象
@Entity
public class Note {
@Id
long id;
String text;
}
添加完成對象后,編譯項目,會自動生成MyObjectBox對象
4.在Application中初始化MyObjectBox對象
private BoxStore boxStore;
@Override
public void onCreate() {
super.onCreate();
boxStore = MyObjectBox.builder().androidContext(App.this).build();
Log.d("App", "Using ObjectBox " + BoxStore.getVersion() + " (" + BoxStore.getVersionNative() + ")");
}
public BoxStore getBoxStore() {
return boxStore;
}
5.進行數據庫的各種操作
private Box<Note> notesBox;
notesBox = ((App) getApplication()).getBoxStore().boxFor(Note.class);
Box提供了對數據進行增刪改查的api
put:插入數據
get:查詢數據
remove:刪除數據
count:返回存貯得對象個數
query: 根據對應得條件查詢
修改數據,先根據query查詢到對應的對象,修改對應的屬性值后,調用put方法插入到數據庫
3.objectbox注解
注解 | 介紹 |
---|---|
@Entity | 表示一個對象 |
@Id | 表示一個標示符,默認自動維護 |
@Transient | 表示一個臨時屬性,不會存儲在數據庫 |
@Index | 表示一個索引 |
@NameInDb | 表示存儲在數據庫中的列名稱 |