23得票3回答
安卓SQLite数据库和应用程序更新

我已经开发了一款Android应用并发布了1.0版本。该应用程序包括带有5个表的SQLite本地数据库。 现在我们计划发布2.0版本并更新1.0版本的用户。在2.0版本中,我们除了之前的5个表外还增加了额外的两个表,因此现在有7个表。 现在我的问题是,1.0版本的用户在本地数据库中都有一些...

22得票3回答
为什么使用insertWithOnConflict(..., CONFLICT_IGNORE)会返回-1(错误)?

我有一个SQLite表:CREATE TABLE regions (_id INTEGER PRIMARY KEY, name TEXT, UNIQUE(name)); 还有一些 Android 代码:Validate.notBlank(region); ContentValues cv = ...

22得票4回答
使用Room持久化库更新带参数的数据

我该如何使用Room库更新整行数据?@Update注解需要一个被@Entity标记的对象,并通过引用主键进行更新,但如果我想通过匹配某个单元格中的值来更新其他参数应该怎么办?//Simple update @Update int updateObject(ObjectEntity... obj...

22得票5回答
java.lang.IllegalStateException: 尝试重新打开已关闭的对象(尝试关闭)

public int getRecordsCount() { String countQuery = "SELECT * FROM " + TABLE_LOGIN; SQLiteDatabase db = this.getReadableDatabase()...

21得票3回答
指定我的应用程序的最大 SQLite 数据库大小。如何处理数据库满异常。

在面试中有人问我如何为我们的安卓应用设置 SQLite 数据库的最大大小,以及当达到最大大小时如何处理? 编辑: Marina Lynn 在下面的回答似乎可接受这个问题。但是,是否存在某种监听器可以在数据库大小接近我们指定的限制时触发?(或类似的东西)

20得票1回答
如何从Room Dao访问中获取游标对象列表?

我正在尝试更改我的代码以利用room数据库API。对于文档表,我已经定义了实体类Document,当我查询getAll()时,它会返回我所有的文档。 现在我有一个旧的Adapter实现,它使用Cursor(它是一个CursorAdapter)。在我的DocumentDao类中,我定义了一个方...

20得票6回答
如何直接将SQLite数据库存储在SD卡上

我希望在SD卡中创建我的SQLite数据库,而不是默认路径...我也想从SD卡访问所有的数据。我已经使用了以下代码: private static class OpenHelper extends SQLiteOpenHelper { OpenHelper(Co...

20得票3回答
在数据库中,每个表应该有一个独立的SQLiteOpenHelper吗?

单个大的SQLiteOpenHelper子类,为数据库中每个表定义onCreate和onUpgrade方法更好,还是为每个表有许多SQLiteOpenHelper子类更好? 是否有最佳实践?或者两者都可以接受,但具有不同的优缺点?

19得票3回答
安卓SQLite数据库单元测试

我是Android应用程序开发的新手,并且我刚刚制作了一个笔记应用程序。我想为数据库的insertNote、readNote和updateNote方法进行单元测试。我该怎么做呢?以下是我的数据库代码。 谢谢。public class DatabaseManager extends SQLit...

19得票2回答
Android Room:如何进行列重命名迁移?

问题 我的应用程序因为我没有正确处理迁移而崩溃。我正在寻找一种解决方案来迁移表中1列的名称。 在我的项目中,我有一个名为'content'的room表格,其中有一个Double属性'archivedCount'。在应用程序的最新版本中,属性archivedCount被重命名为dismiss...