本文将适合您,亲爱的Android开发人员,他们想使用我们的Dear Room Database了解您应用程序中的本地数据持久性,这是JetPack组件中架构的主要组件之一。
您确切知道什么是房间数据库?如果您不知道,请放心,我会用细节向您解释!
Room Database是一个Android JetPack库,在著名的SQLite顶部创建了抽象层,使我们能够使用其所有能力。
您的主要优点是:
- 在汇编时间验证的查询。
- 减少样板的注释使用。
- 与其他Android体系结构组件的集成故障。
谈论一些优势,例如在编译时间检查查询,我们不会在应用程序运行时遇到错误的危险。注释,减少样板,因为我们不需要编写所有查询,只需将注释与我们的功能一起使用,并通过称为反射的现象,当编译代码时,库将自动生成宠儿的库成本
不太容易受到错误的影响。我们将房间分为主要组成部分:
1。实体
每个实体将代表我们数据库中的一个表,例如,我们可以在应用程序中使用实体用户,因此将在我们的银行中创建一个名为用户的表。我们在用户类中使用注释@Entity来传达该房间将是银行中的表格。
2。 dao
dao是日期访问对象的首字母缩写词,此类将负责定义我们将使用的妈妈访问银行的妈妈,例如母亲在银行中添加新用户或母亲©all last挂号的。在这里,我们可以使用注释@Query编写SQL或简单地使用注释@insert插入一些数据。
3。数据库
我们的数据库类将是将应用程序连接到数据库的主要访问点,我们可以使用DAO中创建的妈妈。
我知道它可能很困惑,让我们去实用!
要使用房间实现我们的第一个数据库,我们将需要一些步骤。
1。添加依赖关系
首先,我们将其放在构建中。
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'
}
现在,让我们添加对我们的构建的依赖性。gradle,让我们使用livedata,房间数据库,ViewModel并能够使用我们的注释。
def room_version = "2.4.1"
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
def lifecycle_version = "2.5.1"
def arch_version = "2.1.0"
// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
// LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
// Annotation processor
kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
2。创建我们的实体
要创建我们的实体,我们将遵循几个步骤:
-
使用注释@Entity和tablename Metro创建一个类数据,以命名数据库表。
-
对于ID列,我们将使用parano meter autogenerate = true的注释@primarykey,这将确保我们一个ID。,2,3rd)。
-
对于其余的列,我们将使用注释@columninfo,而Parano将是我们要给列的名称。
@Entity(tableName = "car_table")
data class Car(
@PrimaryKey(autoGenerate = true)
val id: Int = 0,
@ColumnInfo(name = "car_model")
val carModel: String,
@ColumnInfo(name = "car_color")
val carColor: String,
@ColumnInfo(name = "car_plate")
val carPlate: String,
)
3。创建我们的dao
现在,让我们与注释@dao创建一个接口,您将自己在银行中进行操作。
@Dao
interface CarDAO {
@Insert
fun insertCar(car: Car)
@Query("SELECT * FROM car")
fun listAllCars() : LiveData<List<Car>>
}
4。创建我们的ViewModel
让我们为ViewModel创建一个课程,并将Dao作为类建筑商。现在,我们实际上将能够在银行执行运营。
class MainViewModel(
private val dao: CarDAO
) : ViewModel() {
val carLiveData : LiveData<List<Car>> = dao.listAllCars()
fun insertCarToDatabase(car: Car) {
viewModelScope.launch(Dispatchers.IO) {
dao.insertCar(car)
}
}
}
使用所有这些创建的类,只需在活动中创建一个ViewModel的实例,我们的应用程序就可以在房间数据库中保存和读取数据。也可以创建操作以删除和编辑记录,这是您的挑战!
现在您准备创建一些应用程序,例如联系人列表或购物清单。
最后,我将留下有关如何创建ViewModel实例的文档链接。
我希望我能帮助您了解房间数据库的工作原理以及如何实施。我很快见到你!