Android Jetpack

Android Room - 4 (Room Muti Table / Show DB)

----___<<<<< 2022. 1. 22. 00:56

 개복치개발자 강의는 아래의 링크에서 확인할 수 있습니다.

 

개복치개발자 | Linktree

uyalae@naver.com

linktr.ee

 

 이전 글을 통해서 간단한 Room을 써보는 과정을 진행해봤습니다.

 

 그 이번에는 Table 하나가 아니라, 여러개의 테이블은 보는 방법과 DB를 시각적으로 보는 방법들에 대해서 설명해보겠습니다.

 

 일단 데이터가 어떤 데이터가 있는지 확인해볼까요?

 

 Android Debug Database라는 친구를 사용해볼것입니다.

https://github.com/amitshekhariitbhu/Android-Debug-Database

 

GitHub - amitshekhariitbhu/Android-Debug-Database: A library for debugging android databases and shared preferences - Make Debug

A library for debugging android databases and shared preferences - Make Debugging Great Again - GitHub - amitshekhariitbhu/Android-Debug-Database: A library for debugging android databases and shar...

github.com

 

 자, 아래의 친구를 gradle에 넣고

 

debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'

 

 Android SDK의 Path로 가줍니다. 만약 어디에 sdk가 설치되어 있는지 모른다면 이 글을 참고해주세요.

https://stackoverflow.com/questions/25176594/android-sdk-location

 

Android SDK location

I have Xamarin Studio, and I need to specify the Android SDK Location. I have previously had Xamarin Studio working on my pc, and for some reason, I need to enter this again. I have entered the

stackoverflow.com

 

  맥 같은 경우는 아래와 같은 경로입니다.

 

/Users/"USERNAME"/Library/Android/sdk/platform-tools

 

 이후 아래의 명령어를 통해서 실행해줍니다.

 

./adb forward tcp:8080 tcp:8080

 

그 이후 localhost:8080으로 접속을 하면 아래와 같이 DB화면이 잘 나오는 것을 볼 수 있습니다.

 

 

 여기까지데이터베이스 만들어지고 테이블이 만들어져 있는 것을 확인할 수 있는데, 그러면 Entity를 하나 더 만들어서 table을 하나 더 만들려고 하면 어떻게 되는지 한번 살펴보겠습니다. 

 

 아래와 같이 폴더구조를 변경해주고, Text와 유사하게 WordDao / Word Entitiy를 만들어 줬습니다.

 

  이렇게 WordDAO / Word Entitiy 를 만들어 줬습니다.

 

 그런데 이렇게 하고 나면 아래와 같은 에러가 날 것입니다.

 

 Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number.

 

 데이터베이스 스키마가 달라졌으니 버전을 다르게 해라는 것인데요. 한번 아래와 같이 Version = 2로 변경을 해주고, 새롭게 Activity에서 새로운 쓰레드를 만들어서 돌려주면 됩니다.

 

@Database(entities = [Text::class, Word::class], version = 2)
abstract class TextDatabase : RoomDatabase() {

 

 Activity코드는 아래와 같습니다.