티스토리 뷰
이번 포스팅에서는 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
'Android > Database' 카테고리의 다른 글
SQLite 에서 ROOM 까지 (6) - DB 확인하기 (0) | 2020.08.25 |
---|---|
SQLite 에서 ROOM 까지 (5) - SQLite 로 생성된 기존 DB 에 column 추가하기 (0) | 2020.08.20 |
SQLite 에서 ROOM 까지 (4) - SQLite 를 이용한 CRUD (0) | 2020.08.14 |
SQLite 에서 ROOM 까지 (2) - UI 구성 (0) | 2020.08.07 |
SQLite 에서 ROOM 까지 (1) (2) | 2020.07.22 |
- Total
- Today
- Yesterday
- WEMIX
- 리워드앱
- 무료 채굴
- notifyDataSetChanged
- onContextItemSelected
- RoomDatabase
- android intent
- android flag activity
- 채굴앱
- onCreateContextMenu
- bindservice
- StartService
- 무료채굴
- 앱테크
- 앱테크 추천
- mPANDO
- StringUtils
- 안드로이드 서비스
- 리워드 어플
- BroadcastReceiver
- android activity flag
- p2e
- M2E
- Android Service
- Intent
- task
- android task
- task 생성
- registerForContextMenu
- 안드로이드 인텐트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |