----------

 

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 추가

 

 

 

 

 

---------------------

 

+ Recent posts