본문 바로가기

Programming/Android

android Realm 데이터베이스 연동 하기(2) - 활용

반응형
지난 시간에 이어서 Realm DB에 대해 알아볼까 합니다.

오늘은 android에서 간단한 활용법을 알아보겠습니다.

모델클래스를 만들어 보도록 하겠습니다.

public class User extends RealmObject {

private String name;
private int age;

public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
}
모델클래스의 형태는 기존의 모델들과 크게 다르지는 않고  RealmObject를 상속 받았는 것이 특징 입니다. 모델클래스로 객체를 생성해서 저장하면 되기때문에 모델클래스 하나가 테이블 하나라고 생각하면
이해하기 쉬울 것입니다.

Realm realm = Realm.getDefaultInstance();

realm.beginTransaction();

User user = realm.createObject(User.class);
user.setName("John");
user.setAge("30");

realm.commitTransaction();
Insert 하는 부분입니다.
createObject 함수를 통해 Realm 모델 객체를 생성 하고 DB에 저장 됩니다.

Realm realm = Realm.getDefaultInstance();

User user = new User();
user.setName("John");
user.setAge("30");

realm.beginTransaction();

User realmUser = realm.copyToRealm(user);

realm.commitTransaction();
미리생성된 객체를 이용하여 값을 변경하여 저장 하려 한담ㄴ
copyToRealm을 이용 하면 됩니다.


// Build the query looking at all users:
RealmQuery<User> query = realm.where(User.class);

query.equalTo("name", "John");
query.or().equalTo("name", "Peter");

RealmResults<User> result1 = query.findAll();

RealmResults<User> result2 = realm.where(User.class)
.equalTo("name", "John")
.or()
.equalTo("name", "Peter")
.findAll();

조회하는 소스입니다.
타겟 테이블과 원하는 쿼리 형태를 셋팅후 findAll함수를 호출 하면 원하는 결과값을 얻을수 있습니다.