Realmデータベースは履歴データを格納します.3つのデータを保存します.どのように実現しますか.
3955 ワード
1.プライマリ・コードを先に入力します.データベース・ストレージのアクション
2.上のCustomTuiJianSearchモデルクラス.中にはメインキーが入っています.上のコードを挿入するときはrealmを使います.copyToRealmOrUpdate(bean)
3.realmはこのオブジェクトを取得します.このオブジェクトはアプリケーションで宣言されています.
//TODO 。
final CustomTuiJianSearch bean = new CustomTuiJianSearch();
bean.setId(baseInfoMapBean.getId() + "");
bean.setCompanyName(baseInfoMapBean.getKhmc());
bean.setIsValid(baseInfoMapBean.getIsvalid());
bean.setInsertTime(System.currentTimeMillis());
Realm realm = Realm.getInstance(MApplication.getInstance().config);
// , 。 , 3 。 。
final RealmResults equalResults = realm.where(CustomTuiJianSearch.class).equalTo("id", baseInfoMapBean.getId() + "")
.findAll();
if (equalResults.size() == 0) {// 。
RealmResults historyList = realm.where(CustomTuiJianSearch.class)
.findAll();
// 3 。 。
if (historyList.size() >= 3) {
historyList = historyList.sort("insertTime", Sort.ASCENDING);
final RealmResults finalHistoryList = historyList;
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
finalHistoryList.deleteFirstFromRealm();
// realm.copyToRealmOrUpdate(bean);
}
});
}
//
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.copyToRealmOrUpdate(bean);
}
});
}else{
// 。 。
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
/**
* Model , copyToRealmOrUpdate 。 id ,
* , ; , 。
*/
realm.copyToRealmOrUpdate(bean);
}
});
}
2.上のCustomTuiJianSearchモデルクラス.中にはメインキーが入っています.上のコードを挿入するときはrealmを使います.copyToRealmOrUpdate(bean)
public class CustomTuiJianSearch extends RealmObject {
@PrimaryKey
private String id;// id。
private String companyName;//
private String isValid;// 1
private long insertTime;// 。
public long getInsertTime() {
return insertTime;
}
public void setInsertTime(long inserTime) {
this.insertTime = inserTime;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getIsValid() {
return isValid;
}
public void setIsValid(String isValid) {
this.isValid = isValid;
}
}
3.realmはこのオブジェクトを取得します.このオブジェクトはアプリケーションで宣言されています.
Realm realm = Realm.getInstance(MApplication.getInstance().config);
public RealmConfiguration config;
public voic onCreate(){
// Realm
Realm.init(this);
config = new RealmConfiguration.Builder()
.name("yi.realm")// ,
.schemaVersion(13)//
.build();
Realm.setDefaultConfiguration(config);
}