java - 在 SQLite 数据库中存储数组的 ArrayList

标签 java android json sqlite arraylist

我的问题与在 SQLite 中存储数组和 ArrayLists 有关。我有一个目标类(class)如下:

public class Course {
    private String name;
    private ArrayList<Tee> tees;

其中包含 Tee 的 ArrayList,其中 Tee 如下所示:

public class Tee {
    private String Name;
    private int Slope;
    private double Rating;
    private int[] Par={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    private int[] HCP={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

每个类(class)都有多个与其关联的 Tees,每个 Tee 包含 2 个整数数组。我想在 SQLite 数据库中存储类(class)列表。数据库的每一行将代表一个类(class)并包含类(class)对象数据。我对此进行了研究,发现信息太少或太多都没有帮助。

我想我需要使用 JSON 对象或 BLOB 将 ArrayLists 转换为可以存储在 SQLite 中的东西,但我似乎无法找到将 int 数组转换为这样的东西的方法(BLOB 或JSON 对象还是 JSON 数组?)然后将后续的 Tees 列表转换成另一个东西(BLOB 等)

最佳答案

创建多个表。

一个表 ('Cource') 包含字段 'name' 和带有引用的字段('id' 字段)到表 'Tee' 中的行。

表“Tee”包含字段“id”、“name”、“slop”、“rating”、“par”和“hcp”。

由于不可能在表格行中存储数组,您可以:

  • 将数组转换为字符串
  • 为数组中的每一项创建一个字段

    StringBuilder b = new StringBuilder(); for(int i = 0; i < array.length - 1; i++) { 如果(我!= 0){ b.追加(“,”); } b.append(数组[i]); } 字符串 stringArr = b.toString();

关于java - 在 SQLite 数据库中存储数组的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20351218/

相关文章:

java - 如何使用 Java 中的 CsvMapper 将 header 动态分配给 csv 文件

java - 如何替换字符串中的特定单词

java - Android使电话号码可点击,自动检测

json - 具有各种值的 postman 测试数组响应

javascript - 基本调用 API 时 logger.log 返回 undefined

java - 如何在 if else 条件下使用 firebase 查询

java - 使用 volatile 标志替代锁定的技术

c# - 为什么关闭的 Android Activity 似乎保留对象?

php - JSONPath 查询获取节点名称?

java - 在 JAVA 中使用注释加载启动