我的问题与在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};
每个课程都有许多与之相关的T恤,每个Tee包含2个整数数组。我想在SQLite数据库中存储一个课程列表。数据库的每一行都代表一个课程并包含课程对象数据。我对此进行了研究,发现信息太少或太多都无济于事。
我认为我需要使用JSON对象或BLOB将ArrayLists转换为可以存储在SQLite中的东西,但我似乎无法找到将int数组转换为这样的东西的方法(BLOB或JSON对象或JSON数组?)然后将后续T恤列表转换成另一个东西(BLOB等)
答案 0 :(得分:1)
创建几个表。
一个表('Cource')包含字段'name'和带引用('id'字段)的字段到表'Tee'中的行。
表'Tee'包含字段'id','name','slop','rating','par'和'hcp'。
由于无法将数组存储在表格行中,您可以:
为数组
中的每个项创建一个字段StringBuilder b = new StringBuilder(); for(int i = 0; i&lt; array.length - 1; i ++){ if(i!= 0){ 在b.append( “”); } 在b.append(阵列[I]); } String stringArr = b.toString();
答案 1 :(得分:0)
您必须创建用于检索数据的框架。
你应该像对待一个对象一样对待每门课程。
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数据存储,请执行表索引以便管理数据流