«   2018/11   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
Archives
Today
152
Total
1,179,359
안정적인 DNS서비스 DNSEver
관리 메뉴

Blue Breeze

RxBrite Android-Orma 본문

Editor IDE/AndroidStudio

RxBrite Android-Orma

푸른바람 C/H 2017.01.10 08:30

Orma ORM for Android

Orma 란?

Orma는 Android용 ORM. 구현은 SQLiteDatabase 래퍼. ActiveAndroid처럼 간단하고, GreenDAO처럼 빠른 ORM을 목표로 개발.

성능은 천하 제일 "Android의 ORM"무도회 (2015 년판) 을 참조.

build.app 2017.01.03일자

dependencies {
    annotationProcessor 'com.github.gfx.android.orma:orma-processor:4.0.2'
    compile 'com.github.gfx.android.orma:orma:4.0.2'
}

github 설명

1. 개요

@Table, @Column 및 @PrimaryKey로 주석 된 모델 클래스를 정의하고, APK 빌드 명령을 실행하여 도우미 클래스를 생성.

package com.github.gfx.android.orma.example;

import com.github.gfx.android.orma.annotation.Column;
import com.github.gfx.android.orma.annotation.PrimaryKey;
import com.github.gfx.android.orma.annotation.Table;

import android.support.annotation.Nullable;

@Table
public class Todo {

    @PrimaryKey
    public long id;

    @Column(indexed = true)
    public String title;

    @Column
    @Nullable // allows NULL (default: NOT NULL)
    public String content;

    @Column
    public long createdTimeMillis;
}

2. 인스턴스

orma-processor에 의해 생성 된 데이터베이스 핸들 OrmaDatabase를 인스턴스화.

    OrmaDatabase orma = OrmaDatabase.builder(context).build();

OrmaDatabase를 통해 모델을 만들고, 읽고, 업데이트하고 삭제

    Todo todo = ...;

    // create
    orma.insertIntoTodo(todo);

    // prepared statements with transaction
    orma.transactionSync( -> { // or transactionAsync() to execute tasks in background
        Inserter<todo> inserter = orma.prepareInsertIntoTodo();
        inserter.execute(todo);
    });

    // read
    orma.selectFromTodo()
    .titleEq("foo") // equivalent to `where("title = ?", "foo")`
    .executeAsObservable() // first-class RxJava interface
    .subscribe(...);

    // update
    orma.updateTodo()
    .titleEq("foo")
    .content("a new content") // to setup what are updated
    .execute();

    // delete
    orma.deleteFromTodo()
    .titleEq("foo")
    .execute();


'Editor IDE > AndroidStudio' 카테고리의 다른 글

orma "transformClasses With New Class Shrinker For Debug"  (0) 2017.01.12
Android ORM  (0) 2017.01.11
RxBrite Android-Orma  (0) 2017.01.10
Android Studio Codestyle Import  (0) 2017.01.09
Theme : Consistent Design with AppCompat  (0) 2017.01.06
Android Design Support Library  (0) 2017.01.05
0 Comments
댓글쓰기 폼