如何处理多个游标结果

时间:2011-09-18 14:54:46

标签: java android sqlite

我的SQLite数据库中有4个表。一个有问题,一个带有问题id外键的答案,一个类别表和一个问题类别表,它们在问题和类别之间保持多对多的关系(每个问题可以属于多个类别)。

所以,在我的Android应用程序中,我想要提取一个问题,其中包含属于它的所有数据。我需要有关如何正确处理它的帮助。我应该在我的数据访问对象中创建一个名为getQuestionSet(int questionId)的方法,该方法将进一步的方法调用委托给问题表,答案表等,并将questionId作为where子句吗?或者我应该创建已保存此sql查询的视图?但是后面会有几行包含问题文本,因为每个问题都有4个答案。还是有其他解决方案吗?

另外,如果我需要进行第一种方法,是否要创建一个带有光标引用的数据传输对象?

1 个答案:

答案 0 :(得分:0)

尽可能尝试在数据库上执行单个查询,速度更快,管理工作量更少。您可以使用INNER JOIN操作在单个Cursor中获取问题和答案。结果可能包含重复数据,但没有任何损害。结果光标可能如下所示:

_id, answer, question
1, Answer 1 Text, Question Text
2, Answer 2 Text, Question Text (same Question as above)
3, Answer 3 Text, Question Text (same Question as above)

您知道在此查询中,问题文本始终相同,因此您只需从第一行读取它而忽略其他行。

观看与否取决于你,但可能没有必要。