android-database相关内容

Android Sqlite未更新预填充的数据库

我在Android应用程序中使用预填充的sqlite数据库。现在的问题是,当我更新数据库中的数据并递增数据库版本时,调用了onUpgrade()方法,但是我的数据库没有更新。如有任何帮助,我们将不胜感激。 这是我的DatabaseHelper.java public class DatabaseHelper extends SQLiteOpenHelper { private ..

Android Room 数据库事务

使用 Android 中的新房间数据库,我有一个需要进行两个顺序操作的要求: removeRows(ids);insertRows(ids); 如果我运行它,我看到(在检查数据库时)缺少一些行 - 我假设它们在插入后被删除.即第一个操作与第二个操作并行运行. 如果我使用事务块,例如这样,那么一切都很好 - 第一个操作似乎在执行第二个操作之前完成: roomDb.beginTransac ..
发布时间:2022-01-06 20:32:31 移动开发

Room 无法验证数据完整性

使用 Room Database 运行程序时出现此错误 Room 无法验证数据完整性.看起来您已更改架构但忘记更新版本号.您可以通过增加版本号来简单地解决此问题. 似乎我们需要更新数据库版本,但我们可以在 Room 中从哪里进行更新? 解决方案 Aniruddh Parihar 的回答给了我一个提示它解决了. 搜索您扩展了RoomDatabase 的类.在那里你会找到如下版本: ..
发布时间:2021-11-27 20:54:56 移动开发

何时将数据保存到数据库,onPause() 或 onStop()?

我知道这个问题已经被问了一百万次,我自己虽然我已经知道答案,正确的答案是唯一有保证的调用是 onPause(),所以你应该在那里保存你的数据. > 但是,在android文档的很多地方,他们总是建议不要在onPause()方法中做繁重的工作(例如在数据库中写入数据),因为这会延迟活动之间的转换. 根据表 1 中的 Android 开发者指南 onPause():此方法通常用于将未保 ..

发送带有数据库的应用程序

如果您的应用程序需要一个数据库并且它带有内置数据,那么发布该应用程序的最佳方式是什么?我应该: 预先创建 SQLite 数据库并将其包含在 .apk 中? 在应用程序中包含 SQL 命令并让它创建数据库并在第一次使用时插入数据? 我看到的缺点是: 可能的 SQLite 版本不匹配可能会导致问题,我目前不知道该数据库应该去哪里以及如何访问它. 在设备上创建和填充数据库可 ..
发布时间:2021-11-27 12:25:33 移动开发

空指针异常 Android

我收到 NullPointerException 并且我无法修复它.任何人都可以看看我的代码,看看问题是什么以及如何解决它.提前致谢. DatabeseDEO.class 公共类 DatabaseDEO {私有 DatabaseHelper DbHelper;公共数据库DEO(上下文上下文){dbHelper = new DatabaseHelper(context);}公共数据库DEO ..
发布时间:2021-06-10 19:03:12 移动开发

Room Persistence库-具有List< Video>的嵌套对象@Embedded不起作用.

我有一个VideoList对象,我想使用房间库保存它,但是当我尝试在公共列表list = null时使用@Embedded时;它给我下面的错误:错误:(23,24)错误:无法弄清楚如何将该字段保存到数据库中.您可以考虑为其添加类型转换器. VideoList类如下. @Entity公共类VideoList {@首要的关键公共字符串ID;公共字符串标题;public String view ..
发布时间:2021-04-28 20:04:42 Java开发

如何检查一个值,例如名称是否存在于Cloud Firestore中任何文档的集合中?

我想检查是否有一个值,例如(名称:"John")存在于我的Cloud Firestore中任何文档的集合中,因为如果这样的话,我不想创建具有该名称的新文档(在本例中为"John").如何检查名称是否存在? 解决方案 假定您在Firestore中有一个名为"users"的集合,以检查是否有名称为"John"的用户.已经存在,请使用以下代码行: FirebaseFirestore root ..

Firestore的文档ID的唯一性如何?考虑超过一百万份文件

我正在尝试从DocumentReference对象获取自动生成的ID DocumentReference docref = db.collection("users").document();字符串ID = check.getID(); 问题是,由于ID是在客户端生成的,因此当存储中的两个ID超过一​​百万个文档并且当我使用.set()时,firestore中的2个ID可能彼此相似更新. ..

Android Room是否提供SqliteOpenHelper onCreate()&onUpdate()替代品?

使用SqliteOpenHelper,如果是第一次创建数据库,则可以依靠onCreate()方法来初始化一些数据库工作. 此外,使用onUpdate()方法,我可以轻松地检测用户是否具有较旧版本的数据库,并且可以轻松地对其进行更新. Room支持使用其他方法吗? 解决方案 1.SQLiteOpenHelper.onCreate 是的,有回调类.您可以像这样将Callbac ..
发布时间:2021-04-04 20:37:20 移动开发

表格上的房间异常:预打包的数据库具有无效的架构

我的任务是将当前应用程序的架构(使用Cupboard)迁移到Room,在第一部分工作中我遇到了一些问题,即迁移目前以Java语言编写的数据库对象(Cupboard仅支持Java),以使它们与Room一起使用.这是一个例子: 公共类ItemDb {公共Long _id;公共字符串类型;public String子类型;公共长排定时间;public int迭代;public String data1 ..
发布时间:2021-04-04 20:36:59 移动开发

我可以将非主键字段设置为房间中的自动生成的值吗?

我有带有复合主键的表.我可以将其中之一设为自动生成吗? 场景:我有一个 teacher table ,其中包含字段techerId,姓名,性别,角色,部门,职等,并且它具有由角色,部门和职等组成的复合主ID.如何使Teacherid为自动生成的? 解决方案 如果您通过此答案,您将发现复合主键中没有自动递增属性.因此,解决方法是使用索引和唯一约束的概念.在 indices 中设置 ro ..
发布时间:2021-04-04 20:35:52 移动开发

Android Room数据库创建没有ID的实体对象

我的实体类别: @Entity(tableName ="student")数据类学生(@PrimaryKey(autoGenerate = true)值:长,val名称:字符串,年龄:整数,val gpa:Double,val isSingle:布尔值) 问题是,由于 id 是由 Room 数据库自动生成的-意味着我再没有将 id 放入的内容了构造函数无论如何都会被覆盖,并且由于它是构造函 ..
发布时间:2021-04-04 20:35:49 移动开发