查询带有多个变量的结果

时间:2013-12-04 18:23:08

标签: java sparql

我想将每个变量的查询结果添加到不同的列表中。我怎么能这样做?

当只有一个变量时,我用它来得到结果:

 List<Object> values = new ArrayList<Object>();
                                    while ( results.hasNext() ) {
                                        values.add( results.next().get( "A" ));
                                    }

我的sparql查询:

 String queryString =
                                "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " +        
                                "PREFIX owl: <http://www.w3.org/2002/07/owl#> " +
                                "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> " +
                                "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> " +
                                "PREFIX onto: <#> " +

                                 " SELECT ?A ?B  " +
                                 " WHERE { ?B onto:property1 onto:aaa . ?A onto:has_input ?B} " ;

                                 Query query = QueryFactory.create(queryString);
                                 QueryExecution qe= QueryExecutionFactory.create(query, model);
                                ResultSet resultset = qe.execSelect();
                                ResultSet results = ResultSetFactory.copyResults(resultset);

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题是正确的,那么你只需要为B值创建一个新列表并将它们添加到列表中。

所以在从执行查询得到结果集后......

List<Object> aValues = new ArrayList<Object>();
List<Object> bValues = new ArrayList<Object>();
while ( results.hasNext() ) {
    aValues.add( results.next().get( "A" ));
    bValues.add( results.next().get( "B" ));
}

我不知道你想要实现什么,但是FYI查询将返回一个List,其中每个对象都是一个列表。