how to resolve org.postgresql.util.PSQLException: ResultSet not positioned properly, perhaps you need to call next.

From: Karen Goh <karenworld(at)yahoo(dot)com>
To: pgsql-jdbc(at)lists(dot)postgresql(dot)org
Subject: how to resolve org.postgresql.util.PSQLException: ResultSet not positioned properly, perhaps you need to call next.
Date: 2019-09-02 06:28:34
Message-ID: 932079842.712590.1567405714491@mail.yahoo.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi experts,

I have been trying to find a solution in the internet but there is only 1 solution offered by stackoverflow in which the user uses if it is not there then use a else to print out there is no more data/row that appeared in that column.

Basically, I was trying to get a List<String> which meet certain search condition so the data will come from 2 tables - one of which is a column from a join table and the List<String> falls under this table.

So, here's the code that I attempt to get the data out but keep getting ResultSet not positioned properly.

String[] subjectNames = request.getParameterValues("txtsubjects");
String zipcode = request.getParameter("location");
List<String> subjList = new ArrayList<String>(Arrays.asList(subjectNames));
List<tutor> myList = new ArrayList<>();
ArrayList<String> subList = new ArrayList<>();
CopyOnWriteArrayList<String>newSub = new CopyOnWriteArrayList<String>();
tutor t = new tutor();


String sql1 = "select t.tutor_contact_no, t.zipcode, t.tutor_id, t2.subject_name FROM s_tutor t JOIN tutor_subject t2 ON t.tutor_id = t2.tutor_id where t.zipcode = ? And t2.subject_name = Any((?))";

PreparedStatement ps2 = connection.prepareStatement(sql1);
ps2.setString(1, zipcode);
for (int i = 0; i < subjectNames.length; i++) {
Array array = connection.createArrayOf("text", subjList.toArray());
ps2.setArray(2, array);
}
ResultSet rs = ps2.executeQuery();
while (rs.next()) {
t.setContactNo(rs.getString("tutor_contact_no"));
t.setZipcode(rs.getString("zipcode"));
t.settutor_id(rs.getInt("tutor_id"));


for (String s: subjList)
if (s.contains(rs.getString("subject_name")))
subjList.add(rs.getString("subject_name"));
newSub.addAll(subjList);
}
myList.add(t);
request.setAttribute("tutors", myList);
request.setAttribute("sub", newSub);

Please. I hope someone can tell me what's wrong with the code or how to overcome this error...I have been struggling for 2 weeks already.

Thanks.
}
myList.add(t);
request.setAttribute("tutors", myList);
request.setAttribute("sub", newSub);

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message rob stone 2019-09-02 07:35:15 Re: how to resolve org.postgresql.util.PSQLException: ResultSet not positioned properly, perhaps you need to call next.
Previous Message Dave Cramer 2019-08-30 20:04:55 [pgjdbc/pgjdbc] 89464a: remove failing tests for PostgreSQL version 8.3 ad...