728x90
반응형
Side Project - Book Review App
인터파크 도서 Open API를 사용해서 베스트 셀러 목록을 보여주고 검색을 통해 책을 검색하는 도서 리뷰 앱 프로젝트
학습 회고
오늘은 책 항목을 클릭해서 해당 책에 관한 리뷰를 간단하게 저장할 수 있는 기능을 구현하였다.
오늘 공부한 내용
- Room AppDatabase Migration
인터파크 API를 통해 불러온 책 목록을 보여주는 RecyclerView에서 특정 책을 선택해서 간단하게 리뷰를 남기는 기능을 추가적으로 구현하였다.
이때 작성한 리뷰를 저장하기 위해서 Review Entity를 추가하고 데이터베이스에서 쿼리를 수행하는 ReviewDao를 추가해주었다.
이전에는 검색 히스토리에 대한 테이블만 데이터베이스에 저장되어 있는 버전 1이었는데, 새로운 테이블을 생성함으로써 버전 2로 지정해주어야 한다.
이렇게 버전 1에서 2로 데이터베이스를 업데이트한 경우, 변경사항을 반영해줘야 한다.
반영해주지 않으면 컴파일 시 오류가 발생한다.
데이터베이스 이전을 위해 Migration 클래스를 구현하고 addMigraions() 메서드를 사용하였다.
Migration에 이전 버전과 새로운 버전을 명시해주고 migrate() 함수를 오버라이딩 해야 한다.
val migration_1_2 = object: Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("CREATE TABLE `REVIEW` (`id` INTEGER, `review` TEXT," + " PRIMARY KEY(`id`))")
}
}
return Room.databaseBuilder(
context,
AppDatabase::class.java,
"BookSearchDB"
)
.addMigrations(migration_1_2)
.build()
SupportSQLiteDatabase의 execSQL() 메서드를 호출해서 변경사항에 대한 SQL문을 작성한다.
REVIEW 테이블을 새로 만들었기 때문에 CREATE TABLE 문을 작성하였다.
https://developer.android.com/training/data-storage/room/migrating-db-versions?hl=ko
728x90
반응형
'Android > Side Projects' 카테고리의 다른 글
Tinder 앱 개발하기 (0) | 2022.02.15 |
---|---|
도서 리뷰 앱 개발하기 (0) | 2022.02.14 |
도서 리뷰 앱 개발하기 (0) | 2022.02.12 |
도서 리뷰 앱 개발하기 (0) | 2022.02.11 |
도서 리뷰 앱 개발하기 (1) | 2022.02.10 |