gpt4 book ai didi

java - 如何将从 Sparql SELECT 查询获得的结果集转换为映射

转载 作者:行者123 更新时间:2023-12-01 12:29:26 25 4
gpt4 key购买 nike

我正在使用 jena API,并且正在运行一个 SELECT 查询,如下所示 -

SELECT ?stream ?numberOfStudents
where {
?stream inst:hasNumber ?numberOfStudents
}

这将返回一个结果集,其中一列是“stream”,另一列是“numberOfStudents”。现在我尝试使用以下代码将其转换为 map -

public static getResultAsMap(ResultSet rs){
Map<String, Integer> myMap = new HashMap<String, Integer>();
int column1Pos = rs.findColumn("stream");
int column2Pos = rs.findColumn("numberOfStudents");
while (rs.next()) {
String column1 = rs.getString(column1Pos);
int column2 = rs.getInt(column2Pos);
myMap.put(column1, column2);
}

但是出现错误,指出我无法使用 findColumn 方法。有什么方法可以实现我从结果集中获取 map 的目标吗?如果这看起来完全错误,有人可以建议我一种更好的方法来实现从结果集中获取 map 的目标。

最佳答案

这是在您的情况下将 sparql ResultSet 转换为 Map 的另一种方法。

1.包括以下导入:

import java.util.HashMap;
import java.util.Map;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;

2.使用QuerySolution类进行转换:

public Map<String, Integer> getResultAsMap(ResultSet rs) {
Map<String, Integer> myMap = new HashMap<String, Integer>();

for (; rs.hasNext();) {
QuerySolution soln = rs.nextSolution();

String stream = soln.get("stream").toString();
String noOfStudentsStr = soln.get("numberOfStudents").toString();
int noOfStudents = Integer.parseInt(noOfStudentsStr);
myMap.put(stream, noOfStudents);
}

return myMap;
}

关于java - 如何将从 Sparql SELECT 查询获得的结果集转换为映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26062907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com