【问题标题】:Android Studio saving object into SQLite databseAndroid Studio 将对象保存到 SQLite 数据库中
【发布时间】:2018-12-10 17:09:13
【问题描述】:

我正在学习如何使用 SQLite 数据库,并且我对如何将它们与简单数据一起使用有一个要点,例如,我知道我可以将名称和数据类型为 TEXT 的电子邮件存储到表中。现在,我想将同样的东西应用到一个更复杂的对象上,存储我的 Alarm 对象。我的闹钟看起来像

 public class Alarm {
    public int st;
    public String name;
    public String time;
    public String date;
    public long mili;   ///calender time
    public Intent intent;
    public PendingIntent pendingIntent;
    public AlarmManager manager;
    public Alarm(String name, String time, String date, int st, long mili, Intent intent, PendingIntent pendingIntent, AlarmManager manager){
        this.name = name;
        this.time = time;
        this.date = date;
        this.st = st;
        this.mili = mili;
        this.intent = intent;
        this.pendingIntent = pendingIntent;
        this.manager = manager;
    }
}

我知道我可以使用 INTEGER 和 TEXT 等数据类型来存储我的字符串和整数,但是有没有办法存储诸如意图、待定意图和管理器之类的东西。我有一个这些对象的列表,我在不同的类中使用,所以我需要能够访问每个警报对象的意图、待处理的意图和管理器,以便我可以重置和取消警报,因此我发现存储它很容易对象中的数据。但是我不确定这实际上是否可以保存在 SQL 表中。有人可以和我分享一些技巧吗?

【问题讨论】:

  • 我能想到的唯一方法是将您的 Java 对象序列化为二进制数组,然后将其保存。但是,请不要这样做。数据库用于存储数据,而不是 Java 对象。甚至 ORM 框架最终都会在持久化对象之前将它们转换回常规数据。您应该找到当前正在考虑的替代方案。
  • @TimBiegeleisen,好的,谢谢,当我找不到这方面的信息时,我假设了很多,但我想在开始摆弄我的工作代码之前确定一下。
  • @SalmanSaleem,这似乎是一个很好的方法。在序列化对象时,是否有任何特定的文件可以实际保存我的对象?是否有特定文件,例如 SharedPrefrences 或我应该使用的文件,或者我可以只使用诸如 alarmsList.txt 之类的文件吗?
  • @SalmanSaleem 是否有它应该进入的特定文件夹(可能是原始文件夹?)

标签: android database sqlite


【解决方案1】:

在序列化对象时,我是否应该将对象保存到任何特定文件?不,你编码,然后将其保存在 db 中的字节流中。是否有特定的文件,如 SharedPrefrences 或我应该使用的东西,或者我可以只使用类似 alarmsList.txt 的东西吗? 看看这个 https://android.jlelse.eu/parcelable-vs-serializable-6a2556d51538 也许你会得到更多的信息 是否应该进入一个特定的文件夹(也许是原始文件夹?) 不必要 谢谢!

【讨论】:

    猜你喜欢
    • 2011-09-11
    • 2022-08-16
    • 2012-12-16
    • 2023-03-18
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多