【发布时间】: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 是否有它应该进入的特定文件夹(可能是原始文件夹?)