Android肝帝戦紀のObjectBoxモバイルデータベースフレームワークの探究と実現
6321 ワード
ObjectBoxモバイルデータベースフレームワーク
ObjectBox Githubリンク:ここをクリックしてGithubにリンクによると、ObjectBoxはモバイル側のデータベースフレームワークであり、インスピレーションはNoSqlから来ており、速度が非常に速く、市場で最も速いモバイル側のデータベースフレームワークと呼ばれている. なぜ を使うのか速 単純、オブジェクト向けAPI
依存項目レベルを追加Gradleに追加:
moduleレベルのGradleのヘッダ追加:
その後、Make Projectでアイテムをデータベース・オブジェクトを新規作成し、注記@Entityで をマークします.@Idはプライマリ・キーの識別子であり、 から増加する
その後、プログラムを再コンパイルし、MyObjectBoxのオブジェクトを生成した後、グローバルアプリケーションでこのオブジェクトを取得します.
その後、対応するActivityまたは他の場所で呼び出され、各データベース・オブジェクトには対応するboxがあります.
userProfileBoxを取得すると、対応する添削を行うことができます. UserProfile user 1=new UserProfile("wangming",18);userProfileBox.put(user1); 削除 改 調べ
ObjectBox Githubリンク:ここをクリックしてGithubにリンク
buildscript {
ext.objectboxVersion = '1.4.4'
dependencies {
classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
}
}
moduleレベルのGradleのヘッダ追加:
apply plugin: 'io.objectbox' // after applying Android plugin
その後、Make Projectでアイテムを
@Entity
public class UserProfile{
@Id
private long id;
private String name;
private int age;
public UserProfile(String name, int age){
this.name = name;
this.age = age;
}
}
その後、プログラムを再コンパイルし、MyObjectBoxのオブジェクトを生成した後、グローバルアプリケーションでこのオブジェクトを取得します.
public class MyApplication extends Application {
private BoxStore boxStore;
@Override
public void onCreate() {
super.onCreate();
boxStore = MyObjectBox.builder().androidContext(this).build();
if (BuildConfig.DEBUG) {
new AndroidObjectBrowser(boxStore).start(this);
}
}
public BoxStore getBoxStore() {
return boxStore;
}
}
その後、対応するActivityまたは他の場所で呼び出され、各データベース・オブジェクトには対応するboxがあります.
Box userProfileBox = ((MyApplication)getApplication()).getBoxStore().boxFor(UserProfile.class);
userProfileBoxを取得すると、対応する添削を行うことができます.
// id 2
userProfileBox.remove(2);
//
userProfileBox.removeAll();
// put
UserProfile user1 = userProfileBox.query().equal(UserProfile_name,"min").build().findFirst();
user1.setName("wangming");
userProfileBox.put(user1);
// : name="min"
List users = userProfileBox.query().equal(UserProfile_.name,"min").build().find();
// : name = "min",age>18, secondName W
userProfileBox.query().equal(UserProfile_.name,"min")
.greater(UserProfile_.age,18)
.startWith(UserProfile_.secondName,"W");
.build()
.find();
// , find()。
// , findFirst()。
List item =roleBox.query().startsWith(Role_.role_name," ")
.or().equal(Role_.role_name," ")
.orderDesc(Role_.created_at).build().find();
QueryBuilder greater、less、contain API