스마트폰 내장DB에 데이터를 저장하기 위해 사용하는 라이브러리
apply plugin: 'kotlin-kapt'
implementation 'androidx.room:room-runtime:2.2.6'
annotationProcessor 'androidx.room:room-compiler:2.2.6'
kapt 'androidx.room:room-compiler:2.2.6'
@Entity
data class History (
@PrimaryKey val uid:Int?,
@ColumnInfo(name="keyword") val keyword:String?
)
@Dao
interface HistoryDao {
@Query("SELECT * FROM history")
//sql쿼리문 필요(삽입/수정/삭제 외 다른 메서드)
fun getAll():List<History>
@Insert
fun insertHistory(history:History)
@Query("DELETE FROM history WHERE keyword==:keyword")
fun delete(keyword:String)
}
데이터베이스를 생성하고 관리하는 데이터베이스 객체를 만들기 위해 다음과 같이 추상클래스를 만들어줘야 한다.
@Database(entities=[History::class],version=1)
abstract class AppDatabase: RoomDatabase() {
abstract fun historyDao(): HistoryDao //db는 dao에서 꺼내옴
}
class MainActivity : AppCompatActivity() {
private lateinit var db:AppDatabase
override fun onCreate(savedInstanceState: Bundle?) {
.
.
db= Room.databaseBuilder(
applicationContext,
AppDatabase::class.java,
"BookSearchDB" //history 테이블과 리뷰 추가 예정
).build()
그리고 나서는 필요에 맞게 가져다 db.~ 가져다 쓰면 된다.
(예시)
이런식으로 출력하거나~