Room ?
네트워크에 액세스할 수 없을 때도 사용자가 오프라인 상태로 계속 콘텐츠를 탐색할 수 있도록 관련 데이터를 개시하는 것이다. 즉 자체 데이터베이스이다.
장점
- SQL 쿼리의 컴파일 시간 확인
- 반복적이고 오류가 발생하기 쉬운 상용구 코드를 최소화하는 편의 주석
- 간소화된 데이터베이스 이전 경로
기본 구성요소
- Database Class : 데이터베이스를 보유하고 앱의 영구 데이터와 기본 연결을 위한 기본 액세스 포인트 역할
- Data entities : 앱 데이터베이스의 테이블
- Data Access Objects(DAO) : 앱의 데이터베이스의 데이터를 쿼리, 업데이트, 삽입, 삭제하는 데 사용할 수 있는 메서드
DAO
@Dao
interface UserDao {
@Query("SELECT * FROM user")
fun getAll(): List<User>
@Query("SELECT * FROM user WHERE uid IN (:userIds)")
fun loadAllByIds(userIds: IntArray): List<User>
@Query("SELECT * FROM user WHERE first_name LIKE :first AND " +
"last_name LIKE :last LIMIT 1")
fun findByName(first: String, last: String): User
@Insert
fun insertAll(vararg users: User)
@Delete
fun delete(user: User)
}
사용
val db = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, "database-name"
).build()
val userDao = db.userDao()
val users: List<User> = userDao.getAll()
'Android Studio' 카테고리의 다른 글
Android - API 사용 (0) | 2024.02.20 |
---|---|
viewPager2 사용 (0) | 2024.02.15 |
Fragment 이론 정리 (0) | 2024.02.15 |
Android - Fragment사용하여 화면 이동 방법 (0) | 2024.02.14 |
Android 4대 컴포넌트 (0) | 2024.02.14 |