Tag: 数据库

Android室错误:Dao类必须用@Dao标注

我正在使用我的Android应用程序的空间。 我现在试图设置我的数据库,但是有一个错误消息,说,Dao类必须注释@Dao。 但是正如你在编码片段中看到的那样,Dao类用@Dao标注。 有谁知道问题或我的错误可能是哪里? 这两个文件都不在同一个文件夹中(DAO位于服务文件夹中,而另一个类位于模型文件夹中) Device.java @Entity(tableName = “device”) public class Device { @PrimaryKey(autoGenerate = true) public int device_id; @ColumnInfo(name = “identifier”) public String identifier; @ColumnInfo(name = “language”) public int language; @ColumnInfo(name = “searchFilter”) public int searchFilter; public Device(String identifier, int language, int searchFilter){ this.identifier = identifier; this.language = language; this.searchFilter = searchFilter; } } […]

在启动时使用参数化初始化的单例数据库对象?

我试图创建一个可以被多个类使用的单个数据库实例(在Kotlin中使用object关键字)。 但是,我希望能够在创建单例实例之前指定数据库名称。 由于单例对象不能用参数初始化,所以我想知道我在做什么是有效的,或者是否有更好的方法来做事情: object DatabaseSingleton { private lateinit var databaseName: String private lateinit var mongoClient: MongoClient val database: DatabaseContainer by lazy { DatabaseContainer(databaseName, mongoClient) } fun init(databaseName: String, mongoClient: MongoClient): DatabaseSingleton { this.databaseName = databaseName this.mongoClient = mongoClient return this } } 并在另一个文件 class DatabaseContainer(databaseName: String, val mongoClient: MongoClient) { val db: MongoDatabase = mongoClient.getDatabase(databaseName) […]

Android Room Persistences库和Kotlin

我正在尝试使用Kotlin和Room Persistance Library编写一个简单的应用程序。 我遵循Android Persistance codelab中的教程 。 这是我在Kotlin的AppDatabase类: @Database(entities = arrayOf(User::class), version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun userModel(): UserDao companion object { private var INSTANCE: AppDatabase? = null @JvmStatic fun getInMemoryDatabase(context: Context): AppDatabase { if (INSTANCE == null) { INSTANCE = Room.inMemoryDatabaseBuilder(context.applicationContext, AppDatabase::class.java).allowMainThreadQueries().build() } return INSTANCE!! } @JvmStatic fun destroyInstance() […]

房间 – 模式导出目录不提供给注释处理器,所以我们不能导出模式

我正在使用Android数据库组件室 我配置了一切,但是当我编译时,Android Studio会给我提示 模式导出目录不提供给注释处理器,所以我们不能导出模式。 您可以提供room.schemaLocation注释处理器参数或将exportSchema设置为false。 据我所知,这是DB文件的位置 它如何影响我的应用程序? 这里最好的做法是什么? 我应该使用默认位置( false值)?

非法StateException错误

我最近从Java迁移到Kotlin,并将我的应用程序的代码转换为kotlin代码并发布了更改。但是现在有些用户报告说应用程序正在强制停止。 但是我和被测设备都没有面临这个问题。 当我检查崩溃页面。 它显示了这一点: 这是1018行的DatabaseHelper Class Code fun getNotes(sqlCommand: String): MutableList { val result = ArrayList() val db = this.readableDatabase Log.e(LOG, sqlCommand) val cursor = db.rawQuery(sqlCommand, null) try { if (cursor!!.moveToFirst()) { do { val note = Note() note.id = cursor.getLong(cursor.getColumnIndex(KEY_ID)) note.title = DataEncryption.encryptDecrypt(cursor.getString(cursor.getColumnIndex(KEY_TITLE))) note.content = DataEncryption.encryptDecrypt(cursor.getString(cursor.getColumnIndex(KEY_CONTENT))) note.updatedAt = Date(cursor.getLong(cursor.getColumnIndex(KEY_UPDATED_AT))) note.color = cursor.getInt(cursor.getColumnIndex(KEY_COLOR)) note.favourite = […]