java - 将历史记录存储在数据库中

标签 java android sqlite dictionary cursor

我想将历史数据存储在 sqlite 数据库中。 最多应确保 20 个“条目”。

添加新条目时,应删除最旧的条目,并将新条目添加到列表的开头。 调用历史记录时,我希望它以相反的顺序显示(最新条目在前)

据我所知,光标本身无法实现该功能。我需要将我调用的光标转换为另一种 MAP 类型。问题是哪一个以及如何实现这一行动。

最佳答案

那应该没那么难。您的历史记录表需要一个 id 列。当使用游标和适配器时,它也是强制性的。将 id 列定义为 auto incremented 。因此,每次向表中插入新行时,新行都会自动获得一个唯一的 id,该 id 高于分配给之前插入的行的最后一个 id。

您必须编写一个在想要向数据库添加新条目时调用的方法。在该方法中,您执行以下操作。

  1. 检查数据库表中的项目数。
    • 如果条目少于 20 个,则不执行任何操作。
    • 如果条目多于或等于 20 个,则查询 lowest id 的行并删除它。
  2. 将新条目添加到数据库中。它会自动获取表中所有行的最高 id。

当您想要使用游标显示列表中的条目时,您可以通过 SQL 命令 order by 定义返回行的顺序。 。

关于java - 将历史记录存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864112/

相关文章:

java - 简单的 Pig 脚本抛出 NotSerializedException : org. apache.log4j.Level

java - Libgdx 表中的空白字段

java - 如何将 EditText 输入添加到变量浮点中?

java - Kotlin 中的不相交联合可在 Java 中访问

javascript - sqlite ios 手机间隙中的选择查询出现问题?

java - ClassNotFoundException 与 list 中声明的​​类

java - 反转字符串的测试用例

android - 如何将未读计数显示到android应用程序图标?

sql - 同时检索 'count where' 和总计数

c# - 使用 SQLite 和 C# 收到 "database is locked"错误