Android JetPack架构——结合记事本Demo一篇打通对Sqlite的增删改查结合常用jetpack架构应用
以下是一个简化的示例,展示了如何使用Room数据库在Android应用中执行基本的增删改查操作。
首先,添加Room依赖项到你的build.gradle
文件:
dependencies {
implementation "androidx.room:room-runtime:2.2.5"
kapt "androidx.room:room-compiler:2.2.5"
}
定义一个实体类:
@Entity(tableName = "notes_table")
data class Note(
@PrimaryKey val id: Int,
@ColumnInfo(name = "text") val text: String,
@ColumnInfo(name = "created_at") val createdAt: Long
)
创建一个Dao接口:
@Dao
interface NoteDao {
@Query("SELECT * FROM notes_table ORDER BY created_at DESC")
fun getAllNotes(): LiveData<List<Note>>
@Query("SELECT * FROM notes_table WHERE id = :id")
fun getNoteById(id: Int): LiveData<Note>
@Insert
fun insertNote(note: Note)
@Update
fun updateNote(note: Note)
@Delete
fun deleteNote(note: Note)
}
创建数据库类:
@Database(entities = [Note::class], version = 1)
abstract class NoteDatabase : RoomDatabase() {
abstract fun noteDao(): NoteDao
}
初始化数据库和Dao:
val db: NoteDatabase = Room.databaseBuilder(
applicationContext,
NoteDatabase::class.java, "note_database"
).build()
val noteDao = db.noteDao()
使用Dao进行操作:
// 插入
val newNote = Note(id = 1, text = "新记事", createdAt = System.currentTimeMillis())
noteDao.insertNote(newNote)
// 更新
newNote.text = "已修改记事"
noteDao.updateNote(newNote)
// 删除
noteDao.deleteNote(newNote)
// 查询所有记事
val allNotes: LiveData<List<Note>> = noteDao.getAllNotes()
这个示例展示了如何使用Room库创建和管理简单的记事本应用数据。在实际的应用中,你可能需要添加更多的功能,比如错误处理、事务管理等,但基本的增删改查操作就这些。
评论已关闭