Android Studio

Android - Room

내손은개발 🐾 2024. 2. 15. 13:55

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