我真的被困在这......我正在尝试将结果集转换为字符串,这是我的代码:
QueryExecution qExec = QueryExecutionFactory.create(s, ds) ;
ResultSet rs = qExec.execSelect() ;
//String x=rs.toString();
String[] arr = null;
while (rs.next()) {
String em = (String)rs.getString(0);
arr = em.split("\n");
for (int i =0; i < arr.length; i++){
subjectoutput.setText(arr[i]);
}
}
它给出了错误:
JavaApplication2.java:137: error: incompatible types
while (rs.next()) {
^
required: boolean
found: QuerySolution
JavaApplication2.java:138: error: cannot find symbol
String em = (String)rs.getString(0);
^
symbol: method getString(int)
location: variable rs of type ResultSet
2 errors
我的查询结果是:
----------------------------
| x
================================================
| <<SEMA-CR-3-4MHV9RJ@bounce.oracle-mail.com>> |
------------------------------------------------
答案 0 :(得分:2)
看起来您正在尝试使用ResultSet
,就像它来自JDBC一样。但是你在这里使用Jena ARQ。这不是JDBC实现,也不遵循该API。 QueryExecution
为here,ResultSet
为here。
对于此ResultSet
对象,您应该调用hasNext()
以查看是否有其他记录,并next()
来获取记录。所以你的循环可能看起来更像这样:
while (rs.hasNext()) {
QuerySolution qs = rs.next();
... // Do something with qs
}
ResultSet.getString(int)
是一个JDBC函数,ResultSet
或QuerySolution
上没有这样的函数,所以我无法准确地告诉你如何获取你想要的信息结果集。