Я работаю в Eclipse и использую 2 файла Java: Admin.java и SemanticSearch.java. Через Admin.java я регистрирую и проверяю, существуют ли имя пользователя и пароль в моем файле RDF. Функция login в Admin.java вызывает SemanticSearch.java, которая запускает запрос SPARQL. Мой запрос дает мне ответ в консоли Eclipse и даже в другом файле. Теперь моя задача - вернуть ответ Admin.java либо путем возврата значения, либо путем подсчета строк и отправки этого значения в Admin.java. С этим, если число строк равно 1, это означает совпадение имени пользователя и пароля, и я могу позволить пользователю войти в систему.Как подсчитать количество строк в запросе Sparql
Но я не могу этого сделать. Я попытался использовать count(), Count() как CNT, даже попробовал int res = results.next. Но ничего не помогает.
Я вставив код ниже:
Admin.java
SemanticSearch semsearch = new SemanticSearch(request.getSession());
semsearch.loadData(REALPATH + RDFDATASOURCEFILE1);
semsearch.searchForUser(response.getOutputStream(),null, userName, password);
В SemanticSearch.java
public void searchForUser(OutputStream out, String xslfile1, String userName, String password) {
String prolog = "PREFIX kb:<"+VUSER.getURI()+">";
System.out.println("Search for user in semantic search.java");
String queryString1 = prolog +"\n" +"SELECT * " +"WHERE {" +"?x kb:Uname ?username. ?x kb:Password ?password. ?x kb:Interest ?interest. " +"FILTER regex(?username, \"" +userName +"\")}";
System.out.println(queryString1);
Query query=QueryFactory.create(queryString1);
QueryExecution qexec = QueryExecutionFactory.create(query, model);
ResultSet results1 = qexec.execSelect(); --> here the two rows are printed
int res=results1.getRowNumber();
System.out.println(results1); -->here answer is 0
ResultSetFormatter.out(results1);
ResultSetFormatter.out(out, results1);
System.out.println(res);
try {
if (xslfile1 != null)
{
out.write(ResultSetFormatter.asXMLString(results1, xslfile1).getBytes("UTF-8"));
System.out.println(results1);
System.out.println(xslfile1);
System.out.println("I am in if");
}
else
{
out.write(ResultSetFormatter.asXMLString(results1).getBytes(
"UTF-8"));
System.out.println("I am in else");
}
} catch (IOException e) {
e.printStackTrace();
}
}
Пожалуйста, помогите, я изо всех сил, чтобы получить это от недели, С уважением , Арчана.