Android로 OR 매핑이 가능한 Ormlite 사용 방법

12369 단어 AndroidORM

1.Ormlite 소개


는 Android 표준에서 지원하는 SQLite를 사용하여 OR 매핑을 수행할 수 있는 프로그램 라이브러리입니다.
사이트 축소판 그림
http://ormlite.com/
도입의 장점은 일반적인 OR映射이 받는 은혜와 같지만, 워낙 복잡한 SQLite를 할 수 없으면서도 기본적인 SQL을 번거로움에서 해방시켜야 한다는 점에서 효과가 크다.

2. 환경 설정


본가의 다운로드 페이지에서 코어와android의jar 파일을 다운로드합니다.
ormlite-core-x.xx.jar
ormlite-android-x.xx.jar
android 프로젝트의 프로그램 라이브러리 설정에jar를 설정하십시오.

3. 샘플 프로그램


입력한 텍스트를 테이블에 로그인하는 간단한 샘플 프로그램을 사용하여 설명합니다.

word표의 정의는 다음과 같다.
열수
타입
시험을 준비하다
id
INTEGER
AUTOINCREMENT
value
TEXT
입력 값 저장
샘플 프로그램은GiitHub에 놓여 있습니다.
https://github.com/radiocat/ormExample

4.Helper류의 제작


com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper의 Helper 레벨을 상속합니다.
DatabaseHelper 생성 예
DatabaseHelper.java
public class DatabaseHelper extends OrmLiteSqliteOpenHelper {

    private static final String DATABASE_NAME = "ormExample.db";
    private static final int DATABASE_VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {
        try {
            // エンティティを指定してcreate tableします
            TableUtils.createTable(connectionSource, Word.class);
        } catch (SQLException e) {
            Log.e(DatabaseHelper.class.getName(), "データベースを作成できませんでした", e);
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int i, int i2) {
        // DBのアップグレード処理(今回は割愛)
    }
}
일반android.database.sqlite.SQLite OpenHelper 등을 계승하는 경우와 대체적으로 같지만, onCreate에서 실체 클래스를 지정하는 것은create table의 SQL 텍스트를 재생하는 것이 아니라 TableUtils입니다.createTable를 실행합니다.

5. 솔리드 클래스 작성


Word 솔리드를 작성합니다.
내가 선도하고 싶은 내용은 대체로 상상할 수 있고 상세한 내용은 아래 페이지에서 확인할 수 있다(영어).
http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_2.html#Local-Annotations
Word.java
@DatabaseTable(tableName = "word")
public class Word {

    @DatabaseField(generatedId = true)
    private Integer id;
    @DatabaseField
    private String value;

    public Word() {
    }

    public Word(String value) {
        this.value = value;
    }

    public Integer getId() {
        return this.id;
    }

    public String getValue() {
        return this.value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}

6. 모델류의 제작


데이터 작업을 위한 모델 클래스를 만듭니다.

인용하다


Helper 클래스에서 실체 클래스를 매개 변수로 지정하는 getDao 방법을 호출하여 Dao를 생성합니다. 여기서queryForAll을 모두 가져오는 방법을 호출합니다.
기본적으로 getDao가 Dao에서 실체를 얻는 절차이다.
워드 테이블의 모든 내용을 얻는findAll 방법
WordModel.java(발췌문)
public List<Word> findAll() {
        DatabaseHelper helper = new DatabaseHelper(context);
        try {
            Dao<Word, Integer> dao = helper.getDao(Word.class);
            return dao.queryForAll();
        } catch (Exception e) {
            Log.e(TAG, "例外が発生しました", e);
            return null;
        } finally {
            helper.close();
        }
    }

시스템 업데이트


프로세스는 참조와 마찬가지로 Dao에서 수행됩니다.
참고로 insert를 실행하는 방법은create, 업데이트, delete와 같은 이름의 방법이 있습니다.
데이터가 없으면 insert, 업데이트하고 싶으면 crear Update 방법도 있습니다.
create or update의 예
WordModel.java 발췌문
public void save(Word word) {
    DatabaseHelper helper = new DatabaseHelper(context);
    try {
        Dao<Word, Integer> dao = helper.getDao(Word.class);
        dao.createOrUpdate(word);
    } catch (Exception e) {
        Log.e(TAG, "例外が発生しました", e);
    } finally {
        helper.close();
    }
}

7. 요약


이상에서 기본 모델은 실체를 정의하고 Dao에서 실체를 조작하는 형식이 매우 간단한 인상이다.
헬퍼 레벨이든 데이터 조작이든 기본 프로세스는 안드로이드 표준 SQLite 설치 방법을 답습하고 SQL 설치 부분만 제외하므로 안드로이드 표준 설치부터 환승이 용이하죠.
실행 속도 등은 퍼포먼스에 신경을 많이 썼지만 아래 블로그에서 이미 검증이 됐기 때문에 참고로 게재됐다.
Android OR Mapper 사용: ORMrite
http://tech.naver.jp/blog/?p=516
데이터베이스의 업그레이드 방법과 단원 테스트의 쓰기 방법이 어떻게 될지 궁금하지만 다음에 기회가 있을 것이다.

좋은 웹페이지 즐겨찾기