상세 컨텐츠

본문 제목

[안드로이드 코틀린] Database Room 사용법 part1 - Room 설정

안드로이드

by aries574 2022. 6. 24. 14:47

본문


안드로이드에서 앱 내부에 데이터를 관리하는 기능을 하는 Room 사용법에 대하여 알아보겠습니다.

이번 시간에는 기본 설정을 해보겠습니다.

아래 링크를 들어가시면 Room에 대한 상세한 정보를 보실 수 있습니다.

https://developer.android.com/training/data-storage/room?hl=ko 

 

Room을 사용하여 로컬 데이터베이스에 데이터 저장  |  Android 개발자  |  Android Developers

Room 라이브러리를 사용하여 더 쉽게 데이터를 유지하는 방법 알아보기

developer.android.com


목차

1. 라이브러리 등록
2. 데이터 항목 만들기 User.kt
3. 데이터 액세스 만들기 UserDao.kt
4. 데이터 베이스 만들기 AppDatabase.kt


1. 라이브러리 등록

build.gradle(Module:프로젝트명:app)

dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.

    def roomVersion = "2.4.2"
    
    implementation("androidx.room:room-runtime:$roomVersion")
    annotationProcessor("androidx.room:room-compiler:$roomVersion")

 

2. 데이터 항목 만들기 User.kt

 - 설명 -

 1. @Entity(tableName = "user")

데이터가 들어갈 테이블로 지정

2. @PrimaryKey

 테이블 기본키로 지정

3. @ColumnInfo

 테이블 컬럼으로 지정

@Entity(tableName = "user")
data class User(

    @PrimaryKey(autoGenerate = true)
    val id: Int?,

    @ColumnInfo(name = "userName")
    val userName: String?,

    @ColumnInfo(name = "userAge")
    val userAge: String?
)

 


3. 데이터 액세스 만들기 UserDao.kt

 - 설명 - 

1. @Dao

 테이블 데이터에 접근할 있도록 지정

2. 등록(Insert), 조회(Select), 수정(Update), 삭제(Delete)하는 기능을 제공

@Dao
interface UserDao {

    @Query("SELECT * FROM user")
    fun getAllUser(): List<User>

    @Insert
    fun insertUser(user: User)

    @Update
    fun updateUser(user: User)

    @Delete
    fun deleteUser(user: User)
}

 


4. 데이터 베이스 만들기 AppDatabase.kt

 - 설명 - 

1. @Database

데이터베이스로 지정

2. 테이블 접근할 수 있는 DAO 인스턴스제공

@Database(entities = [User::class], version = 1)
abstract class AppDatabase: RoomDatabase(){

    abstract fun userDao(): UserDao

    companion object{

        private var INSTANCE: AppDatabase? = null

        fun getDatabase(context: Context): AppDatabase?{

            if(INSTANCE == null){

                INSTANCE = Room.databaseBuilder(
                    context.applicationContext,
                    AppDatabase::class.java,
                    "app_database")
                    .allowMainThreadQueries()
                    .build()
            }

            return INSTANCE
        }
    }
}

2022.06.20 - [안드로이드] - [안드로이드 코틀린] 밀어서 화면 변경 ViewPager2 갤러리 느낌으로 만드는 방법

 

[안드로이드 코틀린] 밀어서 화면 변경 ViewPager2 갤러리 느낌으로 만드는 방법

이번 시간에는 뷰페이저2(ViewPager2)를 이용해서 이미지를 가로, 세로 방향으로 밀어서 갤러리 느낌으로 보여주는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리 등록 3. dataBinding 설

aries574.tistory.com

2022.06.14 - [안드로이드] - [안드로이드 코틀린] Tab Custom Animation part1 - 화면 구성 및 설정

 

[안드로이드 코틀린] Tab Custom Animation part1 - 화면 구성 및 설정

앞으로 TabLayout을 직접 만들어 애니메이션 기능까지 넣어보도록 하겠습니다. 이번 시간에는 화면 구성 및 설정을 만들어 보겠습니다. 목차 1. 실행 화면 2. dataBinding 설정 build.gradle 3. 테마 변경 t

aries574.tistory.com

2022.06.06 - [안드로이드] - [안드로이드 코틀린] 커스텀 달력 만드는 방법 part1 화면 구성

 

[안드로이드 코틀린] 커스텀 달력 만드는 방법 part1 화면 구성

이번 시간부터 코틀린 버전 커스텀 달력을 만들어보겠습니다. 이번 포스팅은 화면 구성입니다. 목차 1. 실행 화면 2. dataBinding 설정 3. 메인 화면 구성 activity_main.xml 1. 실행 화면 2. dataB..

aries574.tistory.com

 

반응형

관련글 더보기

댓글 영역