ResultSet exception - before start of result set

667    Asked by JoaquinaMesser in Python , Asked on Jul 14, 2021

:I'm having trouble getting sqlexception before start of result set

object. Here is my code:

String sql = "SELECT type FROM node WHERE nid = ?";
    PreparedStatement prep = conn.prepareStatement(sql);
    int meetNID = Integer.parseInt(node.get(BoutField.field_meet_nid));
    prep.setInt(1, meetNID);
    ResultSet result = prep.executeQuery();
    result.beforeFirst();
    String foundType = result.getString(1);
    if (! foundType.equals("meet")) {
        throw new IllegalArgumentException(String.format("Node %d must be of type 'meet', but was %s", meetNID, foundType));
    }
The error trace:
 Exception in thread "main" java.sql.SQLException: Before start of result set
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1072)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:986)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
    at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:841)
    at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5656)
    at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5576)
    at nth.cumf3.nodeImport.Validator.validate(Validator.java:43)
    at nth.cumf3.nodeImport.Main.main(Main.java:38)

What am I doing wrong here? Why java sql sqlexception before start of result set ?

 

Answered by Rohit sharma

Every answer uses .next() or uses .beforeFirst() and then .next(). But why cannot this:

  result.first();

So you need to just set the pointer to the first record and go from there. It's possible since Java 1.2 and I just wanted to mention this for anyone whose ResultSet exists of one specific record.



Your Answer

Interviews

Parent Categories