// MainActivity.kt
(커스텀 스레드 중)
var table = "0 1 2 3 4 5 6 7 8 9"
var tableArr = table.split(" ")
val tableArr = table2.split(" ") Log.i("DEBUG ", (table2).toString())
// db 추가 val db = Room.databaseBuilder(applicationContext, Appdatabase::class.java, "libData.db").build()
db.libDataDao().insert(libData = (tableArr.text.toString())) result_text.text = db.libDataDao().getAll().toString()
// libData.kt
@Entity
data class LibData(
var title:String
) {
@PrimaryKey(autoGenerate = true)
var id: String = "" ,
var All: String = "" ,
var In_Use: String = "" ,
var Remaining: String = "" ,
var Usage: String = "" ,
var Waiting: String = "" ,
var Calling: String = "" ,
var Scheduled: String = "" ,
}
안녕하세요 이번에 파이썬으로 개발했던 프로그램을 안드로이드에 포팅하려고 하던 중
안드로이드에는 pandas라는 라이브러리가 없어 sql데이터베이스를 쉽게 할 수 있는 Room라이브러리를 발견해 사용하려 합니다
제가 하려던 것은 html상의 테이블을 가져와 문자열로 반환한 뒤 ("0 0 0 0 0 12%" 이런 형식) 배열에 넣은 뒤
dao의 insert를 통해 넣으려고 하는데 libData 형식이 아니라면서 실패했습니다.
그래서 유튜브 예제를 보고 따라했습니다 예제는 텍스트를 입력해 todo리스트를 만드는 것입니다.
@Entity
data class Todo(
var title:String
) {
@PrimaryKey(autoGenerate = true)
var id: Int = 0
}
이런 식으로 primary키와 string으로 된 todo입니다.
그래서
info, All, In_Use, Remaining, Usage, Waiting, Calling, Scheduled 총 8개의 데이터가 있는 libData를 만들었습니다
(도서관 자리 크롤링하는 앱입니다)
@Entity
data class LibData(
var title:String
) {
@PrimaryKey(autoGenerate = true)
var id: String = "" ,
var All: String = "" ,
var In_Use: String = "" ,
var Remaining: String = "" ,
var Usage: String = "" ,
var Waiting: String = "" ,
var Calling: String = "" ,
var Scheduled: String = "" ,
}
이런식으로 바꿨으나 콤마(,)부분에서 getter and setter expexted이라고 에러가 뜹니다.
그래서 찾아보니 코틀린은 var같은 경우 자동으로 두 개가 생성된다고 합니다.
이 부분에 대해서 도움을 받고자 질문글을 올렸습니다
감사합니다