[안드로이드스튜디오_문화][RoomDataBase+sql문법]

기말 지하기포·2023년 9월 29일
0

RoomDatabase : AndroidStudio에서 제공하는 local Database -> SQLite는 이제 빠잉!!

구성요소 : Entity , DAO , Room Database

[Entity](여러 소주제들을 묶은 하나의 대주제 정보 테이블)

-> 생성 및 사용 방법 :

--> (1)@Entity(tablename = "대주제 이름")를 data class 위에 선언 해주면 된다. : DataTable을 만드는 과정이야.

--> (2)data class의 생성자에 'val 소주제이름 : 자료형'을 넣어준다.

--> (3)data class의 생성자에 '@PrimaryKey(autoGenerate = true)val PrimaryKey : 자료형 = 초기값'을 넣어준다.

--> (3-1) : @PrimaryKey는 DataTable의 각 행을 구별 할 수 있게 도와준다. PrimaryKey는 Room Database의 인스턴스 하나 하나 당 반드시 존재해야 하며, 자동으로 PrimaraKey 값을 할당하고 싶으면 @PrimaryKey의 Parameter에 autoGenerate의 값을 true로 지정하면 된다.

-> 아래는 예씨 코드임.

--> (4)@Percelize를 활용해서 data class를 직렬화 가능한 객체(역직렬화도 가능함)로 바꾸어서 Entitied data class 객체(Data table 인스턴스)를 Intent를 통해서 Activity 또는 Fragment에서 data class 객체(Room Database의 인스턴스)를 주고 받을 수 있게 한다.

--> (4-1) : @Percelize 어노테이션을 사용 전 체크사항

(1) app 수준의 build.gradle의 plugins에 'id 'kotlin-parcelize'' 추가하기.

[DAO](Data Access Object) : Database에 접근해서 Database의 인스턴스를 다를 수 있는 메서드를 정의해놓은 '인터페이스'야.

-> 생성 및 사용 방법 :

--> (1) Dao 어노테이션을 작성해준다. : 실질적으로 RoomDatabase를 조작함.

--> (2) DAO에서 기본으로 제공해주는 메서드는 오직 세가지이다.

(1) @Insert(Room Database에 Room Database 인스턴스 추가)
(2) @Delete(Room Database에 Room Database 인스턴스 삭제)
(3) @Update(Room Database에 Room Database 인스턴스(들) 업데이트 : Database Table Update)
이렇게 총 3가지이다.

--> (3) DAO에서 기본으로 제공해주는 메서드 이외의 메서드를 사용하려면 @Query()의 Parameter에 sql 문법을 사용해서 내가 원하는 동작을 정의하면 된다.

--> 아래는 예시코드임.

-> 공식문서 : https://developer.android.com/training/data-storage/room/accessing-data?hl=ko

[Room Database]

-> 생성 및 사용 방법 :

(1) Database(entities = [@Entitiy에 해당되는 data class 이름 :: java] , version = 1)을 작성해준다.
(2) 아래 사진 참고해서 작성하면 됨. 주의!! 공식 문서에서 RoomDatabase 객체를 생성할 때 싱글톤 패터늘 사용해서 객체가 1개임을 보장하도록 요구하고 있음.! 명시할 것.!

[SQLite 문법]

https://rachel0115.tistory.com/entry/SQL-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%A6%AC-SELECT-%EC%A0%88

사용방법

  1. app 수준의 build.gradle 파일의 dependencies에 종속성 추가하기 :
    -> def room_version = "?.?.?"
    -> implementation("androidx.roo:room-runtime:roomversion")>kapt("androidx.room:roomcompiler:room_version") -> kapt("androidx.room:room-compiler:room_version")
  2. app 수준의 build.gradle 파일의 plugin 추가하기 :
    -> id 'kotlin-kapt'

공식문서 -> https://developer.android.com/training/data-storage/room?hl=ko

공식문서 -> https://developer.android.com/jetpack/androidx/releases/room?hl=ko

profile
포기하지 말기

0개의 댓글