我决定将Realm用于我的项目。我已经阅读了文档,无法理解如何将所有手机联系人导入我的Realm数据库。 以前有人做过这种项目吗?请帮忙。
我使用过具有批量插入选项的Sugar ORM。 Realm是否有相同的或者可以替代它?
这是我到目前为止所做的事情:
package com.advisualinc.switchchat.Realm_DB;
import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey;
/**
* Created by Veeresh on 10/19/2015.
*/
public class R_ContactDB extends RealmObject {
private String name;
@PrimaryKey
private String phone;
private boolean matchedWithRecent;
private int status;
public R_ContactDB(String name, String phone, boolean matchedWithRecent, int status)
{
this.name = name;
this.phone = phone;
this.matchedWithRecent = matchedWithRecent;
this.status = status;
}
public R_ContactDB()
{
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public boolean isMatchedWithRecent() {
return matchedWithRecent;
}
public void setMatchedWithRecent(boolean matchedWithRecent) {
this.matchedWithRecent = matchedWithRecent;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
答案 0 :(得分:3)
使用Realm,不需要直接适用于SQLite中可用的批量插入的东西。不涉及查询语言的开销。
您只需在单个写入事务中通过Realm#copyToRealm批量插入多个对象。 如果您需要导入JSON数据,则有Realm#createOrUpdateAllFromJson(JSONArray)。
答案 1 :(得分:0)
在2016年,realm为插入批量数据添加了一个新的api
realm.insertOrUpdate(Collections datas);
尝试这种方法以及更多,请看这里。 https://realm.io/blog/realm-java-1-1-0/
答案 2 :(得分:0)
kotlin中的完整代码
fun insertList(list: MutableList<MenuItems>) {
val realm = AppDatabase.getRealmInstance() //get Realm Instance
try {
realm.executeTransaction { realmTr ->
realmTr.copyToRealm(list)
}
} catch (error: Exception) {
error.printStackTrace()
} finally {
realm.close()
}
}