안드로이드 // Room 사용법
----------
https://blog.naver.com/getinthere/221695431132
안드로이드 7강 - (1) SQLite 추상화 객체 room 사용해보기
1. ROOM 의존성https://developer.android.com/topic/libraries/architecture/room?gclid=Cj0K...
blog.naver.com
Room
새프로젝트
데이터베이스에서 IO할때는 무조건 쓰레드 써야함
기존SQLite는 쿼리문을 직접짜야하는데 - 교재 536페이지
Room을 이용하면 JPA와 비슷하다 (ORM : 오브젝트 릴레이션 모델) - 네이밍쿼리 공부
Room 의존성
https://developer.android.com/topic/libraries/architecture/room
Room 지속성 라이브러리 | Android 개발자 | Android Developers
Room 라이브러리 사용 방법을 알아봅니다.
developer.android.com
room 디펜던시 추가
lombok 디펜던시 추가
User엔티티
UserRepository
view - dao - db
dao에는 쿼리문이 모여있다
JPA나 ROOM과 같은 ORM은 영속성 컨텍스트를 들고 있다 (영속성 : rs를 가져와서 저장)
-1번유저를 가져온다면 - 영속성 컨텍스트에 데이터가 있는지 확인
- 없다면 DB에서 가져와서 영속성 컨텍스트에 저장 + 데이터를 넘겨준다
- 있다면 영속성 컨텍스트에 저장된 데이터를 넘겨준다
(캐시기능 LRU방식)
UI에서 실행하면 오류가난다
.fallbackToDestructiveMigration() // 2번째 배포부터 추가 / 스키마의 버전 변경이 가능
.allowMainThreadQueries() // 메인쓰레드에서 DB에 IO를 가능하게 해줌 (테스트용임 원래는 쓰레드를 만들어야함)
내부적으로 회원가입 없이 유저의 데이터를 이용해서 앱을 쓰게 하는 것!
데이터베이스에서 다시 가져와보자
하나만 뽑기위해 findByUid 추가
---------------------