Android 데이터베이스 Realm 빠 른 입문 강좌
소개
안 드 로 이 드 가 개발 한 최신 트 렌 드 인 Realm 은 SQLite 와 ORMlibraries 를 대체 할 수 있 는 경량급 데이터베이스 다.
SQLite 에 비해 Realm 은 빠 르 고 많은 현대 데이터 베 이 스 를 가 진 특성 을 가진다. 예 를 들 어 JSON, 스 트림 api, 데이터 변경 알림, 암호 화 지원 등 은 모두 안 드 로 이 드 개발 자 에 게 편 의 를 가 져 다 주 었 다.
이 빠 른 입문 튜 토리 얼 에 서 는 안 드 로 이 드 버 전 리 얼 엠 의 기초 지식 을 배 울 수 있다.본 튜 토리 얼 에서 우리 가 사용 하 는 것 은 Realm v 0.84.1 이다.
2 Realm 원 격 패 키 지 를 추가 하고 Realm 을 프로젝트 에 추가 합 니 다.
안 드 로 이 드 프로젝트 에서 Realm 을 사용 하려 면 module 의 build. gradle 파일 에 의존 도 를 추가 해 야 합 니 다.
compile 'io.realm:realm-android:0.84.1'
3 Realm 만 들 기
하나의 Realm 은 SQLite 데이터베이스 에 해당 합 니 다.안 드 로 이 드 파일 시스템 에 오래 저 장 될 파일 이 있 습 니 다.
3.1 새로운 Realm 을 만 들 려 면
임의의 Activity 에서 정적 방법 인 Realm. getInstance 를 호출 할 수 있 습 니 다.
Realm myRealm = Realm.getInstance(context);
Realm. getInstance 를 호출 하고 Realm Configuration 에 들 어 오지 않 으 면 default. realm 이라는 Realm 파일 을 만 듭 니 다.
3.2 앱 에 다른 Realm 을 추가 하려 면
Realm Configuration. Builder 대상 을 사용 하고 Realm file 에 만 있 는 이름 을 지정 해 야 합 니 다.
Realm myOtherRealm =
Realm.getInstance(new RealmConfiguration.Builder(context)
.name("myOtherRealm.realm")
.build()
);
4 RealmObject 만 들 기
RealmObject 클래스 만 계승 하면 임의의 자바 빈 은 Realm 에 저장 할 수 있다.자바 빈 이 뭔 지 몰라?이것 은 바로 직렬 화 가능 한 자바 류 로 기본 구조 기 가 있 고 구성원 변 수 는 해당 하 는 getter / setter 방법 이 있 습 니 다.예 를 들 어 다음 과 같은 인 스 턴 스 는 Realm 에 쉽게 저장 할 수 있 습 니 다.
public class Country extends RealmObject {
private String name;
private int population;
public Country() { }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPopulation() {
return population;
}
public void setPopulation(int population) {
this.population = population;
}
}
RealmObject 의 구성원 변 수 를 메 인 키 로 하려 면 @ Primary Key 주 해 를 사용 할 수 있 습 니 다.예 를 들 어 Country 클래스 에 메 인 키 코드 를 추가 하 는 방법 을 보 여 줍 니 다.
@PrimaryKey
private String code;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
5 트 랜 잭 션 생 성
Realm 은 ACID (데이터베이스 트 랜 잭 션 이 올 바 르 게 실행 되 는 네 가지 기본 요소 의 줄 임 말) 규범 에 따라 원자 성과 일치 성 을 확보 하기 위해 모든 기록 작업 을 하나의 트 랜 잭 션 에서 수행 하도록 강제 합 니 다.
새로운 사 무 를 시작 하려 면 beginTransaction 방법 을 사용 하 십시오.유사 하 게 이 일 을 끝 내 려 면 commitTransaction 방법 을 사용 하 십시오.주: 사 무 는 영어 의 transaction 입 니 다.
5.1 Country 류 의 구조 기 를 사용 하지 않 고 country 1 을 만 듭 니 다.
Realm 에 있어 서 RealmObject 의 인 스 턴 스 를 관리 하려 면 이 인 스 턴 스 는 createObject 방법 으로 만들어 야 합 니 다.Country 클래스 를 만 들 고 저장 하 는 방법 을 보 여 줍 니 다.
myRealm.beginTransaction();
// Create an object
Country country = myRealm.createObject(Country.class);
// Set its fields
country.setName("Norway");
country.setPopulation(5165800);
country.setCode("NO");
myRealm.commitTransaction();
5.1 구조 기 를 사용 하여 country 2 를 만들어 야 합 니 다.
사 무 를 제출 하기 전에 관련 Realm 대상 의 copy ToRealm 방법 을 사용 합 니 다.여 기 는 예시 입 니 다.
// Create the object
Country country = new Country();
country.setName("Russia");
country.setPopulation(146430430);
country.setCode("RU");
myRealm.beginTransaction();
Country copyOfCountry = myRealm.copyToRealm(country2);
myRealm.commitTransaction();
6. 쓰기 조회
Realm 은 검색 어 를 만 들 기 위해 매우 직관 적 이 고 흐 르 는 API 를 제공 했다.검색 어 를 만 들 려 면 Realm 대상 의 where 방법 을 사용 하여 관심 있 는 대상 의 클래스 를 입력 하 십시오.검색 어 를 만 든 후, RealmResults 대상 을 되 돌려 주 는 findAll 방법 으로 모든 결 과 를 얻 을 수 있 습 니 다. findAll.
6.1 findAll()
다음 예 에서 Country 의 모든 대상 을 가 져 오고 인쇄 합 니 다.
RealmResults<Country> results =
myRealm.where(Country.class).findAll();
for(Country c:results) {
Log.d("results", c.getName());
}
6.2 begins With, ends With, lesser Than, greater Than
Realm 은 begins With, ends With, lesser Than 과 greater Than 등 몇 가지 이름 이 매우 적합 한 방법 을 제공 하여 결 과 를 걸 러 내 고 선별 할 수 있 습 니 다.다음 코드 는 greater Than 방법 으로 population (인구) 이 1 억 이상 인 Country objects 를 얻 는 방법 을 보 여 줍 니 다.
RealmResults<Country> results =
myRealm.where(Country.class)
.greaterThan("population", 100000000)
.findAll();
6.3 findAllSorted
검색 결과 가 분류 되 고 싶다 면 findAllSorted 방법 을 사용 할 수 있 습 니 다.인자 에 서 는 분류 되 는 field 의 이름 을 String 으로 지정 하고 boolean 으로 분류 순 서 를 지정 합 니 다.
RealmResults<Country> results =
myRealm.where(Country.class)
.findAllSorted("name", false);
총결산
이 빠 른 입문 에서 안 드 로 이 드 프로젝트 에서 리 얼 엠 을 어떻게 사용 하 는 지 배 웠 다.Realm 데이터 베 이 스 를 만 들 고 조회 데 이 터 를 저장 하 는 것 이 얼마나 쉬 운 지 볼 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.