在Android中使用Room数据库时,会创建3个文件,其中包括一个数据库文件(.db文件),一个共享内存文件(.db-shm文件)和一个写入日志文件(.db-wal文件)。
下面是一个包含代码示例的解决方法:
dependencies {
def room_version = "2.3.0"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
// 如果需要使用协程支持
implementation "androidx.room:room-ktx:$room_version"
}
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String,
val age: Int
)
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
@Dao
interface UserDao {
@Insert
fun insert(user: User)
@Query("SELECT * FROM users")
fun getAllUsers(): List
}
class MyApplication : Application() {
companion object {
lateinit var database: AppDatabase
}
override fun onCreate() {
super.onCreate()
database = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, "my-database"
).build()
}
}
val userDao = MyApplication.database.userDao()
val user = User(1, "John Doe", 25)
userDao.insert(user)
val users = userDao.getAllUsers()
通过以上步骤,你可以成功创建一个使用Room数据库的Android应用,并在运行时生成3个文件(.db、.db-shm、.db-wal)。