Android Kotlin DB - Table 정의 (2)
Notepad96
·2020. 12. 6. 23:17
0. 이전글
1. 테이블 정의
Kotlin 에서는 data class가 존재하며, 이를 사용함으로써 getter/setter를 따로 구현할 필요가 없다.
이를 @Entity 어노테이션을 사용하여 데이터(테이블)를 정의할 수 있다.
해당 예시에서는 다음과 같은 구조를 갖는 테이블을 만든다.
Books
id: Long (PK) | book_name: String | writer: String | price: Int |
2. Data Class (Book.kt)
@Entity(tableName = "books")
data class Book(
@ColumnInfo(name = "book_name") var name: String?,
var writer: String?,
var price: Int
) {
@PrimaryKey(autoGenerate = true) var id: Long = 0
override fun toString(): String {
return "id = $id, name = $name, writer = $writer, price = $price"
}
}
- @Entity를 지정하면서 tableName 속성을 사용하여 생성할 테이블의 이름을 지정할 수 있다.
데이터베이스의 생성될 테이블의 이름이므로 너무 길지 않으며 직관적인 이름을 사용하여야 한다.
- data class를 사용하여 Book 클래스를 정의하고 있다.
Book 클래스의 생성자를 보면 (name, writer, price)를 인자로 갖는다.
@ColumnInfo(name = "book_name")을 사용하여 해당 열(애트리뷰트)의 이름을 지정해줄 수 있다.
이는 따로 지정하지 않는다면 변수명이 사용된다. ( writer -> writer , price -> price )
- @PrimaryKey를 사용하여 기본키를 지정해줄 수 있으며
autoGenerate = true를 줌으로써 자동으로 증가하는 값을 갖도록 할 수 있다.
id 값은 자동으로 증가하는 값을 갖음으로써 생성자에서 따로 값을 입력을 받을 필요가 없다.
따라서 data class Book 내부에 변수를 선언해준다.
3. 참 조
'Android' 카테고리의 다른 글
Android Kotlin DB - AppDataBase 데이터베이스 생성 (4) (0) | 2020.12.07 |
---|---|
Android Kotlin DB - DAO를 사용하여 데이터 접근 (3) (0) | 2020.12.07 |
Android Kotlin DB - Room을 사용하여 데이터베이스 사용 (1) (0) | 2020.12.06 |
Android Kotlin 뒤로가기 버튼 생성 - parentActivityName (0) | 2020.12.04 |
Android Kotlin 액티비티 전환 - intent, putExtra (0) | 2020.12.04 |