SQLite 에서 ROOM 까지 (3) - SQLiteOpenHelper 를 이용한 DB 생성
이번 포스팅에서는 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