Android Room Database 사용하기 1

사용 버전: Android Studio 4.0

사용 언어: Kotlin 1.3.72


안드로이드 Room Database 사용하기 1을 알아보겠습니다.


안드로이드 Room은 안드로이드에서 SQLite Database를 사용하기 위한 Library입니다.


먼저, Fragment


ViewModel을 만듭니다.


현재 상태입니다.



Room Library를 사용합니다.



app 용 build.gradle에 아래를 추가합니다.



39 번 줄의 내용을 위처럼 kapt로 변경해 줍니다.

Sync now를 누릅니다.



그리고 Database를 만듭니다.

database를 저장할 package를 만든 뒤, New - Kotlin File/Class를 누릅니다.





데이터 베이스를 담을 Class 이름을 적습니다.



내용을 아래와 같이 적습니다.





Entity는 database 테이블을 만듭니다. tableName 옵션은 테이블의 이름을 나타냅니다. 

PrimaryKey는 중복되지 않는 값을 나타냅니다. autoGenerate 옵션은 자동 생성 기능입니다.

나머지 속성들은 ColumnInfo를 사용해서 나타냅니다. name 옵션은 열의 이름을 나타냅니다.




Data Access Object(DAO)를 추가합니다.





Interface로 만듭니다.





아래 내용을 추가합니다.



Insert와 Update는 기본으로 제공됩니다.

그리고 필요한 Query들은 @Query 명령어를 통해서 손수 제작하고 함수를 만듭니다.

:key를 사용해서 필요한 인자를 넘겨줄 수 있습니다.




Database class를 만듭니다.








아래를 추가합니다.





@Database로 아래의 클래스가 RoomDatabase라는 것을 명시해 줍니다.

entities에는 데이터베이스에 포함될 entity의 목록을 넣습니다.

version은 WhoAmI.kt 파일에 변화가 있을 때마다 상승시켜줘야 합니다.

exportSchema는 디버그 할 때에만 true를 사용합니다. (json 형식으로 내보내짐)

@Volatile은 Main memory에서 처리되는 것을 말합니다. 따로 Cache를 만들지 않아서, 모든 Thread에서 같은 값을 참조하도록 만듭니다.

synchronized는 여러 thread가 동시에 접근할 수 없도록 만듭니다.

Room.databaseBuilder의 name 옵션은 안드로이드에 저장될 database의 이름을 나타냅니다.

fallbackToDestructiveMigration은 Database 버전이 다를 때, 삭제하고 다시 만들겠다는 뜻입니다.




잘 생성되는지 확인하는 시간을 가져봅니다.

androidTest 패키지를 찾아갑니다.




아래를 추가합니다.




Rebuild 해줍니다.



테스트를 실행합니다.

우 클릭 - Run 'ExampleInstrumentedT...' 클릭





아래의 Run 탭에 아무런 오류가 나타나지 않으면, Room Database를 생성하고 삭제하는 것에 문제가 없다는 뜻입니다.




Android Room Database 사용하기 2 편에서 계속.


끝.


카테고리: Android

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

Python OpenCV 빈 화면 만들기

Python bytes.fromhex()

Android Minimum touch target size

tensorflow tf.random.uniform()

tensorflow tf.expand_dims()

Forensics .pyc 파일 .py로 복구하기

KiCad 시작하기 2 (PCB 만들기)

Android Java 8+ Api desugaring

Android Notification with Full Screen