Acessando dados ResultSet [RESOLVIDO]

Estou precisando fazer um JSON com os resultados de uma query, estou montando sozinho porém estou com certas dificuldades.

Faço desta maneira:

`public class ControleSincronismo {

private static JsonObject jsonResponse = new JsonObject();
private static JsonArray data = new JsonArray();

/**
 * @param args the command line arguments
 */
public static void main(String[] args) throws SQLException {
    ConexaoMySQL con = new ConexaoMySQL();
    con.getConexaoMySQL();
    ResultSet rs_tbl_CONTROLE_SINCRONISMO = con.query("SELECT * FROM DB_EGLISE.tbl_CONTROLE_SINCRONISMO;");

    while (rs_tbl_CONTROLE_SINCRONISMO.next()) {
        String COD_IDENT_CONTR = rs_tbl_CONTROLE_SINCRONISMO.getString("COD_IDENT_CONTR");
        String TXT_TABLE_CONTR = rs_tbl_CONTROLE_SINCRONISMO.getString("TXT_TABLE_CONTR");
        String FLG_OPERA_CONTR = rs_tbl_CONTROLE_SINCRONISMO.getString("FLG_OPERA_CONTR");
        String TXT_CHAVS_CONTR = rs_tbl_CONTROLE_SINCRONISMO.getString("TXT_CHAVS_CONTR");
        try {
            JSONObject w_obj = new JSONObject(TXT_CHAVS_CONTR);
            switch (TXT_TABLE_CONTR) {
                case "tbl_PESSOAS":
                    ResultSet rs_tbl_PESSOAS = con.query("SELECT * FROM DB_EGLISE.tbl_PESSOAS WHERE COD_IDENT_IGREJ = '" + w_obj.getString("COD_IDENT_IGREJ") + "' and COD_IDENT_PESSO = '" + w_obj.getString("COD_IDENT_PESSO") + "';");
                    ResultSetMetaData rsmd = rs_tbl_PESSOAS.getMetaData();
                    int columnsNumber = rsmd.getColumnCount();
                    
                    for(int i = 1; i < columnsNumber; i++){
                        System.out.println(rsmd.getColumnName(i)); 
                        System.out.println(rs_tbl_PESSOAS.getString(rsmd.getColumnName(i))); //O problema está nesta linha
                    }
   
                       /* System.out.println(rsmd);
                        System.out.println(columnsNumber);*/
                    
                    return;
            }
            // System.out.println(w_obj.length());
        } catch (Exception e) {
            System.out.println(e);
        }
    }
    con.FecharConexao();
}

}`

O log está aparecendo da seguinte maneira:

`run:
COD_IDENT_IGREJ
java.sql.SQLException: Illegal operation on empty result set.
COD_IDENT_IGREJ
java.sql.SQLException: Illegal operation on empty result set.
COD_IDENT_IGREJ
java.sql.SQLException: Before start of result set
COD_IDENT_IGREJ
java.sql.SQLException: Before start of result set
COD_IDENT_IGREJ
java.sql.SQLException: Before start of result set
COD_IDENT_IGREJ
java.sql.SQLException: Before start of result set
COD_IDENT_IGREJ
java.sql.SQLException: Before start of result set
COD_IDENT_IGREJ
java.sql.SQLException: Before start of result set
COD_IDENT_IGREJ
java.sql.SQLException: Before start of result set
COD_IDENT_IGREJ
java.sql.SQLException: Before start of result set
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

O que está acontecendo ? Como resolver este problema ?

Primeiro tira esses underline né, e não estou vendo o executeQuery.
https://docs.oracle.com/javase/tutorial/jdbc/basics/processingsqlstatements.html

meu executeQuery eu criei na classe que conecta ao banco:

public static ResultSet query(String sql) throws SQLException{
     Statement stmt = ConexaoMySQL.getConexaoMySQL().createStatement();
     ResultSet rs = stmt.executeQuery(sql);
    return rs;
}

Cadê o ResultSet.next() ? O ResultSet só vai trazer os valores após a chamada do next.

Tente algo do tipo:

   ResultSet rs = ....;
        while(rs.next()){
        	ResultSetMetaData rsmd = rs.getMetaData();
                 .....	
        }
1 curtida