gpt4 book ai didi

android - 如何将列表作为变量添加到 sqlite 表?

转载 作者:行者123 更新时间:2023-11-30 01:15:08 26 4
gpt4 key购买 nike

我有一个需要保存项目列表的应用程序,- 每个项目都有几个属性,其中一些是普通整数字符串和 bool 值,其中一些是列表,有简单的也有更复杂的。

我将所有这些数据保存在一个 sql 表中。如我所料,这是离线保存数据的最简单方法。

我想知道,我知道如何做简单的 TEXT, INTEGER,但如何将列表添加为变量?

澄清一下。这就是我现在所做的:

mydatabase.execSQL("CREATE TABLE IF NOT EXISTS Projects(name TEXT, description TEXT, networkId TEXT);");

这就是我想要做的:

mydatabase.execSQL("CREATE TABLE IF NOT EXISTS Projects(name TEXT, description TEXT, list1 ArrayList<String>, list2 ArrayList<String> , costumeList1 ArrayList<CostumModel>, costumeList1 ArrayList<CostumModel2>, networkId TEXT);");

如何做到这一点?我正在网上寻找这个,找不到太多帮助。谢谢!

最佳答案

没有像 listarray 这样的内置 sqlite 类型。要将集合保存到 sqlite,您应该选择以下两种方法之一:创建另一个表与原始表相关或将您的列表序列化为字符串(例如 json 字符串)并另存为文本.

另一个表

costumeList1 创建新表(来自您的示例):

CREATE TABLE costumes (
_id INTEGER PRIMARY KEY,
name TEXT,
project_id INTEGER,
FOREIGN KEY(project_id) REFERENCES Projects(_id)
);

并按项目选择服装:

SELECT name FROM costumes WHERE project_id = ?

如果您的服装可以使用其他字段(例如型号或数量)进行扩展,则此方法非常有用。为新实体更新现有表将很容易:

ALTER TABLE costumes ADD COLUMN model TEXT;

序列化

如果你的服装只是一个数组,你可以将它序列化为字符串(例如 json 字符串):

new JSONArray(Arrays.asList(costumeList1)).toString();

并将此字符串保存为数据库中的TEXT 字段。要取回此数组,您应该反序列化它:

new JsonArray(cursor.getString("costumeList1"))

关于android - 如何将列表作为变量添加到 sqlite 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37960823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com