[android] 안드로이드 Room Database의 쿼리 작성

안드로이드 앱에서 데이터베이스를 사용할 때, Room 라이브러리를 사용하여 SQL 쿼리를 작성할 수 있습니다. Room은 SQLite 데이터베이스를 추상화하는 데 사용되며, 더 편리한 데이터베이스 액세스를 제공합니다.

1. 쿼리 작성

Room 데이터베이스에서 데이터를 쿼리하려면 DAO (Data Access Object) 인터페이스를 생성해야 합니다. DAO 인터페이스 내에서 메서드를 정의한 다음, 각 메서드에 대해 해당하는 쿼리를 작성해야 합니다.

예를 들어, 유저 정보를 검색하는 쿼리를 작성해보겠습니다.

@Dao
interface UserDao {
    @Query("SELECT * FROM user WHERE id = :userId")
    User getUserById(int userId);
}

위의 코드에서 @Query 어노테이션을 사용하여 SQL 쿼리를 작성하고, 메서드의 매개변수에는 해당하는 조건을 전달합니다.

2. 매개변수화된 쿼리

쿼리를 메서드의 매개변수로 전달하여 동적으로 데이터를 가져올 수 있습니다.

@Dao
interface UserDao {
    @Query("SELECT * FROM user WHERE age > :minAge")
    List<User> getUsersOlderThan(int minAge);
}

위의 코드에서 :minAge는 쿼리의 조건을 나타내며, 메서드의 매개변수인 minAge로 전달됩니다.

3. 리턴 유형

쿼리의 결과에 따라 적절한 리턴 유형을 선택할 수 있습니다. 위의 예제에서는 단일 유저나 유저 목록을 리턴했지만, 필요에 따라 다양한 리턴 유형을 선택할 수 있습니다.

Room 데이터베이스에서 쿼리를 작성하는 방법에 대해 간단히 살펴보았습니다. Room 라이브러리를 통해 데이터베이스 작업을 보다 편리하게 처리할 수 있으며, 적절한 쿼리 작성을 통해 데이터를 효과적으로 관리할 수 있습니다.

참고 자료