작성
·
273
답변 2
0
0
안녕하세요! 준하님 ~ ^^ 조이스입니다.
Kotlin, Java 와 같은 객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터 베이스에서는 테이블을 사용하기 때문에 객체 모델과 관계형 모델 간에 불일치가 발생하게 됩니다.
ORM(Object relational mapping)은 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결해줍니다. 즉 객체를 통해 간접적으로 데이터 베이스의 데이터를 다루는 것이지요. Room 이 대표적인 안드로이드의 ORM 라이브러리이며, 말씀해주신 것처럼 JPA, Hibernate, Mybatis도 그 예 중에 하나라고 할 수 있습니다.
함수의 이름과 같은 경우는 무엇을 적어주셔도 상관 없습니다. 또한 쿼리문을 사용하고 싶으시다면 아래 예시와 같이 @Query("Query 문") 어노테이션을 사용하여 DB에 접근 할 수도 있습니다.
답변이 학습에 도움이 되었기를 바랍니다.
혹시 추가적인 질문 있으시면 남겨주세요.
좋은 하루 보내세요 :)
@Dao
interface TestDao {
@Query("SELECT * FROM Test")
fun getAll(): LiveData<List<Test>>
@Query("SELECT * FROM task_table WHERE taskId = :key")
fun get(key: Long): LiveData<Tasks>
@Query("SELECT * FROM task_table ORDER BY taskId DESC")
fun getAll(): LiveData<List<Tasks>>
@Insert(onConflict = OnConflictStrategy.REPLACE) // 중복 ID일 경우 교체
fun insert(todo: Test)
@Update
fun update(todo: Test)
@Delete
fun delete(todo: Test)
}
감사합니다
준하님 완강까지 화이팅!☺️