Til. Android Room DB Query 정리 (1)

Devback·2021년 5월 17일
0

Query는 Room DB DAO 클래스에서 사용하는 기본 주석이다. 이 주석으로 데이터베이스를 읽기/쓰기 작업을 할 수 있다.

단순 쿼리

컴파일 타임에 Room이 User 테이블의 모든 칼럼을 조회하는 쿼리이다.

@Dao
interface MyDao{
    @Query("SELECT * FROM user")
    fun loadAllUsers(): Array<User>
}

매개변수 전달 쿼리

WHERE 뒤에 조건을 추가하는 쿼리문이다. :minAge를 보면 함수의 매개변수를 쿼리에서 사용할 수 있다. 핵 꿀

@Dao
interface MyDao{
    @Query("SELECT * FROM user WHERE age > :minAge")
    fun loadAllUserOlderThan(minAge: Int): Array<User>
}

여러 매개변수 전달 쿼리

매개변수를 하나 뿐만 아니라 여러가지를 전달할 수 있다.

@Dao
interface MyDao{
    @Query("SELECT * FROM user WHERE age BETWEEN :minAge AND :maxAge")
    fun loadAllUserBetweenAges(minAge: Int, maxAge: Int): Array<User>
    
    @Query("SELECT * FROM user WHERE first_name LIKE :search " + "OR last_name LIKE :search")
    fun findUserWithName(search: String): List<User>
}

Delete 쿼리

Delete를 사용해서 user 테이블에서 id에따라서 해당 정보를 삭제한다.

@Dao
interface MyDao{
    @Query("DELETE FROM user WHERE user_id = :userId")
    fun deleteUserById(userId: Long): Int
}

여기에 정리한 쿼리 외에도 많은 예시가 많은데.. 너무 많아서 다음에 몰아서 정리해야겠다...
Room DB 스터디하는 김에 sql 공부하는 것도 좋을듯하다.

참고

profile
나랑 같이 개발할 사람🖐

0개의 댓글