【问题标题】:Storing an ArrayList of Arrays in SQLite Database在 SQLite 数据库中存储数组的 ArrayList
【发布时间】:2013-12-19 12:20:20
【问题描述】:

我的问题与在 SQLite 中存储数组和 ArrayLists 有关。我有一个对象课程如下:

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};

每门课程都有许多与之相关的 Tee,每个 Tee 包含 2 个整数数组。我想在 SQLite 数据库中存储课程列表。数据库的每一行将代表一个课程并包含课程对象数据。我对此进行了研究,发现信息太少或太多都无济于事。

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

【问题讨论】:

  • 请不要在 sqlite 数据库中创建 blob 列,因为如果插入大图像意味着它会产生问题.. 做一件事将图像存储在 sdcard 中保存路径在 sqlite.. 搜索 sqlite curd 操作你会得到很多教程

标签: java android json sqlite arraylist


【解决方案1】:

创建几个表。

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

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

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

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

    StringBuilder b = new StringBuilder(); for(int i = 0; i

【讨论】:

  • 这是将数组转换为我所询问的字符串的过程。更具体地说,对于 JSON 对象或 BLOB 或已经处理转换和打包的东西。我可以编写一些可以进行转换的东西,但我认为这就是这些 JSON 和 BLOB 的用途。
【解决方案2】:

您必须创建用于检索数据的框架。

你应该把每一门课程都当作一个对象来对待。

  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};

    public Tee(String name,int slope,double Rating,int[] par,int[] hcp)
    {

     this.name=name;
     this.slope=slope;
     this.Rating=rating;
     this.PAR=par;
     this.HCP=hcp;
   }

public String GetName()
{
return this.name;
}
....

public int[] GetHCP()
{
return this.HCP;
}
}

并使用for循环将数据插入数据库

for(int i=0;i<size();i++)
    {
        ContentValues values=new ContentValues();

        values.put("name", "data");



        long l=sdb.insert(TAble name, null, values);



    }

对于 PAR 和 HCP 数据存储,请进行表索引以更好地管理您的数据流

【讨论】:

  • 您正在向我展示如何将字符串数据放入数据库。我没关系。我想知道如何将int数组转换成可以存储在数据库中的东西。
  • 为此,您必须创建新的子表名称,如 PAR 和 HCP,根据您的要求添加列,从主表进行索引。我认为没有办法存储数组列表直接进入 sq lite 的表中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 2014-04-26
  • 1970-01-01
相关资源
最近更新 更多