Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-使用内容提供者进行连接查询_Android_Android Contentprovider - Fatal编程技术网

Android-使用内容提供者进行连接查询

Android-使用内容提供者进行连接查询,android,android-contentprovider,Android,Android Contentprovider,如何在android中使用内容提供者加入/比较查询。 这可能吗?根据两个表之间的关系,我通常应用以下任一解决方案,我在库项目中记录了这些解决方案,通过这些解决方案,您通常会将所有项目公开给外部可用的接口(如内容提供商): 如果表A包含的信息如果不与表B连接就几乎不感兴趣,那么每当查询A时,我总是返回A和B的连接。您可以在库中记录它,在这里您将定义“表A”的URI 如果表A和表B包含应该可以单独查询的数据(我的意思是:没有连接),那么我通常会提供一个额外的URI,例如在我的库中名为A_JOIN_

如何在android中使用内容提供者加入/比较查询。
这可能吗?

根据两个表之间的关系,我通常应用以下任一解决方案,我在库项目中记录了这些解决方案,通过这些解决方案,您通常会将所有项目公开给外部可用的接口(如内容提供商):

  • 如果表A包含的信息如果不与表B连接就几乎不感兴趣,那么每当查询A时,我总是返回A和B的连接。您可以在库中记录它,在这里您将定义“表A”的URI

  • 如果表A和表B包含应该可以单独查询的数据(我的意思是:没有连接),那么我通常会提供一个额外的URI,例如在我的库中名为A_JOIN_B_URI的URI,当查询时,该URI返回两个表的连接。同样,您可以在lib中记录这一点

可能还有更多的选项,但我认为这些选项最符合ContentProvider的概念:一个不知道在它背后实现了什么数据存储的接口。无论您在何处显式使用底层数据存储的功能,现在都可以通过外观怪异的“helperURI”清楚地看到这一点


欢迎对此发表任何评论,也许我能学到一两件事

您是否尝试过使用查询参数而不是定义新的URI?我认为查询参数通常用于执行子选择之类的操作?在数据库领域(实际上也包括ContentProvider领域,可能并非完全巧合),这将通过实现WHERE子句来实现。在本例中,提到了一个联接,它定义了将要查询的数据的总集合(在SELECT中也是如此)。当然,您可以使用参数来区分数据集的连接版本和未连接版本(这只是打包此决策的另一种方式),但我觉得,使用不同的uri路径可以更好地描述正在发生的事情。@Barum Rho:作为我之前评论的补充:如果您所建议的实际上是在其他领域处理此问题的“事实上”的标准方法,例如HTML(uri经常用于指向数据),请让我知道。我对此一无所知,所以我也不知道;-)我总是尽可能地遵循现有的标准(即使它们只是“事实上的”),我不知道最好的实现方法是什么。我正在考虑使用查询参数,有些表有不止一个关系,很难列举所有的情况,而且A_JOIN_B_JOIN_C_…\u URI会很难看。