안드로이드/Room
room 초기 설정
김어찐
2022. 9. 26. 10:24
728x90
package com.ej.room_exam
import androidx.room.Database
import androidx.room.RoomDatabase
@Database(entities = [Todo::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun todoDao(): TodoDao
}
package com.ej.room_exam
import androidx.room.*
@Dao
interface TodoDao {
@Query("SELECT * FROM Todo")
fun getAll() : List<Todo>
@Insert
fun insert(todo: Todo)
@Update
fun update(todo: Todo)
@Delete
fun delete(todo: Todo)
}
package com.ej.room_exam
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity
data class Todo(
val title: String,
){
@PrimaryKey(autoGenerate = true)
var id: Int = 0
}
메인 액티비티에서 사용
package com.ej.room_exam
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.room.Room
import com.ej.room_exam.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
lateinit var mainBinding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mainBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(mainBinding.root)
val db = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, "database-name"
)
.allowMainThreadQueries()
.build()
mainBinding.resultText.text = db.todoDao().getAll().toString()
mainBinding.addButton.setOnClickListener {
db.todoDao().insert(Todo(mainBinding.todoEdit.text.toString()))
mainBinding.resultText.text= db.todoDao().getAll().toString()
}
}
}
728x90