Metodo que retorne qq tipo de query passada

Bom dia,

estou tentando fazer um metodo que me retorne qualquer query executada:

    public StringBuilder consultaSQL(String query){
        StringBuilder resultado = new StringBuilder();
        try {
            
            PreparedStatement ps = this.getCnn().prepareStatement(query);
            ResultSet rs = ps.executeQuery();
            
            while(rs.next()){
                //como eu pego os resultado??
            }

            
            
        } catch (SQLException ex) {
            Logger.getLogger(DAOExcelSql.class.getName()).log(Level.SEVERE, null, ex);
        }


        return resultado;
    }

mas eu nao tenho ideia de como eu pego esses resultados.

se alguem puder me ajudar

Muito obrigado.

Não entendi o que você quer .

O que é esse StringBuilder que você vai retornar??

Eu acredito que você possa pegar tudo como Object e depois ver qual o tipo correto do Objeto…

Tipo

List<Object> list = new ArrayList<Object>();
    while(rs.next())
        list.add(rs.getObject(/*nome da coluna ou index*/));

Ainda acho isso meio bizarro :shock:

Tem gente que pega o ResultSetMetadata, que tem um array (eu acho) com os nomes das colunas, daí é só iterar pelos valores desse array e pegar os resultados de todos os campos e coloca em um List<List> (ou pior List<List> ) serve para quando você vai fazer uma consulta muito elaborada, mas ainda é estranho

mas eu nao tenho os nomes das colunas.

e eu vou ter que retornar os nomes das colunas tb

pois é

muito estranho!
resumindo, eu vou ter q simular um editor de SQL

O ResultSetMetadata retorna o nome das colunas

na minha tela so tem um campo texto p pessoa digitar qualquer consulta

e tenho q retornar os valores dessa consulta

Então tem o ResultSetMetadata

Aproveita também o código do ivandasilva como um “esqueleto” e pegue os nomes das colunas pelo ResultsetMetadata…

Retorne uma estrutura de dados que abstraia uma tabela (HashTable deve ser legal, ve ai qual resolve seus problemas)

[]'s

aonde tem esse “esqueleto”?

alguem sabe onde tem esse exemplo?

no site do HSQLDB.

Appendix B. First JDBC Client Example.

Esqueleto eu me referi a esta resposta do ivandasilva

No link que eu postei na ultima resposta tem o link da documentação da API do resultsetmetadata e lá tem um exemplo de como obter o resultsetmetadata a partir do resultset

ESTOU MONTANGO AQUI

QD FICAR PRONTO EU POSTO