realm 단순 사용

5106 단어
데이터베이스 - 안 드 로 이 드 4 대 저장 소 중 하나 입 니 다. 솔직히 사용 하지 않 은 지 오래 되 었 습 니 다. 평소에 네트워크 와 파일 저장 소 를 사용 해 야 합 니 다. 오프라인 모드 가 필요 하거나 특별한 요구 가 있 는 경 우 를 제외 하고.realm - 경량급 모 바 일 데이터 베 이 스 는 SQLite 와 다른 orm 프레임 워 크 에 비해 많은 장점 을 가지 고 있 습 니 다. 예전 에는 들 어 본 적 이 있 을 뿐 오늘 은 여산 의 정 체 를 보 러 왔 습 니 다.SQLite 에 비해 Realm 은 빠 르 고 많은 현대 데이터 베 이 스 를 가 진 특성 을 가진다. 예 를 들 어 JSON, 스 트림 api (Rx), 데이터 변경 알림, 암호 화 지원 등 은 모두 안 드 로 이 드 개발 자 에 게 편 의 를 가 져 다 주 었 다.
어떻게 사용 합 니까?
  • 의존 은 먼저 procject 의 build. gradle 에 추가
  • dependencies {
           ...
            classpath "io.realm:realm-gradle-plugin:2.2.2"
    }
    

    그리고 app 의 build. gradle 에 apply plugin: 'com.android.application' 아래 에 추가 합 니 다.
    apply plugin: 'realm-android'
    

    이제 우리 sync 프로젝트 면 돼.
  • realm 을 만 들 려 면 클래스 계승 애플 리 케 이 션
  • 을 사용자 정의 해 야 합 니 다.
    public class AppContext extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            RealmConfiguration config = new RealmConfiguration.Builder()
    //                .name("myRealm.realm")
                    .build();
            Realm.setDefaultConfiguration(config);
        }
    }
    
  • 주석 부분 은 realm 의 이름 입 니 다. 기본 default. realm 을 사용 합 니 다.
  • manifest 에서 사용자 정의 애플 리 케 이 션 을 사용 하 는 것 을 잊 지 마 세 요.
  • RealmObject 를 만 들 면 RealmObject 클래스 를 계승 하면 임의의 JavaBean 이 Realm 에 저 장 됩 니 다.
  • public class RealmBean extends RealmObject {
        private String openId;
        private boolean isRead;
    
        public String getOpenId() {
            return openId;
        }
    
        public void setOpenId(String openId) {
            this.openId = openId;
        }
    
        public boolean isRead() {
            return isRead;
        }
    
        public void setRead(boolean read) {
            isRead = read;
        }
    }
    
  • 도구 류 4.1. 삽입
  • public static void insertRealm(String openId) {
       Realm realm = Realm.getDefaultInstance();
       realm.beginTransaction();
       RealmBean bean = realm.createObject(RealmBean.class);
       bean.setOpenId(openId);
       bean.setRead(false);
       realm.commitTransaction();
    }
    

    너 는 bean 이 Country 류 의 구조 기 를 사용 하여 만 든 것 이 아니 라 는 것 을 알 게 되 었 을 것 이다.Realm 에 있어 서 RealmObject 의 인 스 턴 스 를 관리 하려 면 이 인 스 턴 스 는 createObject 방법 으로 만들어 야 합 니 다.구조 기 를 사용 해 야 한다 면, 업 무 를 제출 하기 전에 관련 Realm 대상 의 copy ToRealm 방법 을 사용 하 는 것 을 잊 지 마 세 요.
    public static void insertRealm(String openId) {
        Realm realm = Realm.getDefaultInstance();
        realm.beginTransaction();
        RealmBean bean = new RealmBean();
        bean.setOpenId(openId);
        bean.setRead(false);
        realm.copyToRealm(bean);
        realm.commitTransaction();
    }
    

    4.2. 삭제
    public static RealmBean deleteRealm(String openId) {
        Realm mRealm = Realm.getDefaultInstance();
        RealmBean bean = mRealm.where(RealmBean.class).equalTo("openId", openId).findFirst();
        mRealm.beginTransaction();
        bean.deleteFromRealm();
        mRealm.commitTransaction();
        return bean;
    }
    

    4.3. 수정
    public static void updateRealm(String openId) {
        Realm mRealm = Realm.getDefaultInstance();
        RealmBean bean = mRealm.where(RealmBean.class).equalTo("openId", openId).findFirst();
        mRealm.beginTransaction();
        bean.setRead(true);
        mRealm.commitTransaction();
    }
    

    4.4. 조회
    public static RealmBean queryRealm(String openId) {
        Realm mRealm = Realm.getDefaultInstance();
        RealmBean bean = mRealm.where(RealmBean.class).equalTo("openId", openId).findFirst();
        return bean;
    }
    public static List queryRealmList(boolean isRead) {
        Realm mRealm = Realm.getDefaultInstance();
        RealmResults bean = mRealm.where(RealmBean.class).equalTo("isRead", isRead).findAll();
        return bean;
    }
    
  • 조건 조회, Realm 은 다음 과 같은 조회 조건 을 지원 합 니 다.
  • between (), greater Than (), lessThan (), greater Than OrEqualTo () 와 lessThanOrEqualTo ().
  • equalto () 와 notEqualTo ().
  • contains (), begins With (), ends With ().
  • isNull () 과 isNotNull ().
  • isEmpty () 와 isNotEmpty ().


  • 이상 은 바로 realm 의 기본 적 인 용법 입 니 다. realm 은 간단 하고 편리 하지만 많은 단판 이 있 습 니 다.
    결점.
  • sqlite 를 바탕 으로 하 는 것 이 아니 라 그 는 자신의 저장 엔진 을 가지 고 있 으 며 저장 소 는 표 에 기반 한 것 이 아니 기 때문에 연결 표 조 회 는 지원 되 지 않 습 니 다.
  • 모든 데이터 모델 은 RealmObject 에서 직접 계승 해 야 합 니 다.이것 은 우리 가 데이터 모델 중의 임의의 유형의 계승 을 이용 하 는 것 을 방해한다.
  • 리 얼 엠 은 자동 성장 속성 이 없다.
  • Realm 대상 의 Setters & Getters 는 다시 불 러 올 수 없습니다
  • Realm 파일 은 여러 스 레 드 에 동시에 접근 할 수 있 지만 Realms, Realm 대상, 조회 와 조회 결 과 를 크로스 스 레 드 로 처리 할 수 없습니다.

  • 총결산
    realm 의 장점 은 물론 이 고 한 글자: 빠르다.ACID 를 보장 하 는 요구 에 따라 많은 디자인 이 속도 위주 이다.물론 리 얼 엠 의 가장 핵심 적 인 이념 은 대상 구동 이 고 이것 은 리 얼 엠 의 핵심 원칙 이다.Realm 은 본질 적 으로 내장 형 데이터 베이스 이지 만 데 이 터 를 보 는 또 다른 방식 이기 도 합 니 다.그것 은 모 바 일 애플 리 케 이 션 의 모델 과 업무 논 리 를 다른 각도 에서 다시 본다.Realm 이 든 크로스 플랫폼 이 든 여러 플랫폼 이 같은 데이터 베 이 스 를 사용 하 는 것 이 얼마나 좋 은 일 입 니까?앱 데이터베이스 로 Realm 을 사용 하 는 개발 자가 갈수 록 많아 질 것 이 라 고 믿 습 니 다.

    좋은 웹페이지 즐겨찾기