티스토리 뷰

728x90



이번 포스팅에서는 database 의 생성과 버전을 관리하는 SQLiteOpenHelper 에 대해 알아보려 한다.

Database 생성과 버전 관리는 SQLiteDatabase 만 가지고도 할 수 있다.

즉, SQLiteOpenHelper class 는 필수는 아니지만 구조적으로 잘 만들어져 있어 이를 이용하면 database 생성, 버전 관리를 용이하게 할 수 있다.



Why

SQLiteOpenHelper 를 사용하면 어떤 점이 용이할까?

예를 들어 하단처럼 학년, 학번, 이름의 column 으로 구성된 table 을 만들었다고 가정하자.

ID 학년 학번 이름
1 2 2014314682 영수
2 2 2014314680 영희

 

해당 table 에 나이 column 을 추가한다고 하면 당연히 기존 column 의 내용을 유지하면서 나이 column 을 추가해야 할 것이다.

만약, SQLiteDatabase 만 가지고 해당 상황을 구현하려 한다면 너무 복잡해질 것이다.

(결국 SQLiteOpenHelper 처럼 될 것이다.)

 

이럴때 SQLiteOpenHelper 를 사용한다면 개발자는 onUpgrade 함수에서 원하는 동작만 추가하면 된다.

SQLiteOpenHelper 는 DB 를 open 할 때 기존 DB version 보다 현재 DB version 이 크다면 onUpgrade() 를 호출한다.



SQLiteOpenHelper

SQLiteOpenHelper 를 상속받게 되면 하단 3가지 함수를 구현해 주어야 한다.

 

◼ constructor

DB name 과 DB version 을 명시해야 한다.

 

◼ onCreate

DB 를 생성한다.

 

◼ onUpgrade

생성된 DB 의 version 이 올라 수정이 필요한 경우.

상세 설명은 하단 link 참조

[Android/Database] - SQLite 에서 ROOM 까지 (5) - SQLite 로 생성된 기존 DB 에 column 추가하기



Source code



728x90
댓글