Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

CRUD - 만들기 - Java SDK

이 페이지의 내용

  • 해당 페이지의 예시에 대한 정보
  • 새 객체 만들기

이 페이지의 예제에서는 ProjectTask 라는 두 가지 Realm 객체 유형이 있는 프로젝트 관리 앱의 Realm 데이터 모델을 사용합니다. 에는 이(가) 0개 이상 Project Tasks 있습니다.

아래에서 이 두 클래스의 스키마 ProjectTask를 참조하세요.

ProjectTask.java
import org.bson.types.ObjectId;
import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey;
import io.realm.annotations.RealmClass;
import io.realm.annotations.Required;
public class ProjectTask extends RealmObject {
@PrimaryKey
public ObjectId _id;
@Required
public String name;
public String assignee;
public int progressMinutes;
public boolean isComplete;
public int priority;
@Required
public String _partition;
}
Project.java
import org.bson.types.ObjectId;
import io.realm.RealmList;
import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey;
import io.realm.annotations.RealmClass;
import io.realm.annotations.Required;
public class Project extends RealmObject {
@PrimaryKey
public ObjectId _id;
@Required
public String name;
public RealmList<ProjectTask> tasks = new RealmList<>();
}
ProjectTask.kt
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import io.realm.annotations.Required
import org.bson.types.ObjectId
open class ProjectTask(
@PrimaryKey
var _id: ObjectId = ObjectId(),
@Required
var name: String = "",
var assignee: String? = null,
var progressMinutes: Int = 0,
var isComplete: Boolean = false,
var priority: Int = 0,
var _partition: String = ""
): RealmObject()
Project.kt
import io.realm.RealmList
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import io.realm.annotations.Required
import org.bson.types.ObjectId
open class Project(
@PrimaryKey
var _id: ObjectId = ObjectId(),
@Required
var name: String = "",
var tasks: RealmList<ProjectTask> = RealmList(),
): RealmObject()

트랜잭션 에서 영역영역 () 를 사용하여 Realm 객체 의 영구 인스턴스 를 만듭니다. 그런 다음 접근자와 변경자를 사용하여 반환된 객체 를 다른 필드 값으로 수정할 수 있습니다.

다음 예제에서는 createObject()를 사용하여 객체를 만드는 방법을 보여 줍니다.

realm.executeTransaction(r -> {
// Instantiate the class using the factory function.
Turtle turtle = r.createObject(Turtle.class, new ObjectId());
// Configure the instance.
turtle.setName("Max");
// Create a TurtleEnthusiast with a primary key.
ObjectId primaryKeyValue = new ObjectId();
TurtleEnthusiast turtleEnthusiast = r.createObject(TurtleEnthusiast.class, primaryKeyValue);
});
realm.executeTransaction { r: Realm ->
// Instantiate the class using the factory function.
val turtle = r.createObject(Turtle::class.java, ObjectId())
// Configure the instance.
turtle.name = "Max"
// Create a TurtleEnthusiast with a primary key.
val primaryKeyValue = ObjectId()
val turtleEnthusiast = r.createObject(
TurtleEnthusiast::class.java,
primaryKeyValue
)
}

JSON 에서 영역 에 객체를 삽입할 수도 있습니다. Realm 은 String, JSONObject 에서 객체 생성을 지원합니다. 및 입력 스트림 유형. Realm 은 Realm 객체 스키마 에 정의되지 않은 JSON 에 있는 모든 속성을 무시합니다.

다음 예시 에서는 createObjectFromJson() 을 사용하여 JSON 에서 단일 객체 를 생성하거나 createAllFromJson()을 사용하여 JSON 에서 여러 객체를 생성하는 방법을 보여 줍니다.

// Insert from a string
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.createObjectFromJson(Frog.class,
"{ name: \"Doctor Cucumber\", age: 1, species: \"bullfrog\", owner: \"Wirt\" }");
}
});
// Insert multiple items using an InputStream
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
try {
InputStream inputStream = new FileInputStream(
new File("path_to_file"));
realm.createAllFromJson(Frog.class, inputStream);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
});
// Insert from a string
realm.executeTransaction { realm ->
realm.createObjectFromJson(
Frog::class.java,
"{ name: \"Doctor Cucumber\", age: 1, species: \"bullfrog\", owner: \"Wirt\" }"
)
}
// Insert multiple items using an InputStream
realm.executeTransaction { realm ->
try {
val inputStream: InputStream =
FileInputStream(File("path_to_file"))
realm.createAllFromJson(Frog::class.java, inputStream)
} catch (e: IOException) {
throw RuntimeException(e)
}
}

돌아가기

CRUD