Seize the day

POST : Android Dev Study

SQLite ORM 구현하기

ORM 이라는게 있다.  ORM은 이점이 많아 쓰지 않을 이유가 없다. 일단 생산성이 극도로 높아져 코딩의 재미가 있는 것 같다. 사실 Table schema 하나 추가 될 때 마다 귀찮은 db 입력 출력 루틴을 구현하는 것이 너무 귀찮았는데 이번 기회에 공부도 할 겸 ORM을 손수 구현해 보았다. 어제 일요일에는 ORM구현하느라 공부 포스트를 쓰지 못했다. 생각보다 구현해야 하는 코드량이 상당했다. Realm은 일단 걷어냈다. 


기존에 SettingRO를 지우고 SettingDO를 다시 구현했다. 

SettingDO : setting의 값을 저장하는 common_settings TABLE의 스키마를 정의한다. OrmObject를 extends 해야 한다. 




기존의 Realm에 읽고, 쓰고, 지우는 구현은 훨씬 간단해 졌다. 




SettingDO에 선언된 annotation의 구현:  참고로 SQLite는 TEXT, INTEGER, REAL, BLOB 4가지 타입만 있다. 




OrmObject는 OrmUtils에서 처리하기위한 기본 클래스이다. Table Schema Object는 이 클래스를 extends 하여야 한다. 




결국 OrmHelper의 구현은 ..




OrmUtils.java : OrmHelper는 OrmUtils의 static 메쏘드의 구현에 의존한다. ORM의 구현은 OrmUtils가 핵심이 된다. 




구현의 단계별 테스트 코드




모든 구현이 다 테스트 된 것은 아니지만, 미구현이나 오류는 개발하면서 수정할 생각이다.. 포린키나 인덱스 키를 생성하는 것도 TODO 

top

posted at

2015. 7. 20. 22:17


CONTENTS

Seize the day
BLOG main image
김대정의 앱 개발 노트와 사는 이야기
RSS 2.0Tattertools
공지
아카이브
최근 글 최근 댓글
카테고리 태그 구름사이트 링크