ResultSet Vazio, mas o dado tá no banco

5 respostas
Luiz-SP

Pessoal to com um problema, quando eu executo o query abaixo no prompt do do oracle ele me retorna um linha.

SELECT z103_rec_key, z103_rec_key_1 FROM z103 where z103_rec_key_1 = 'BLA010069679'

Entretanto, quando eu executo a mesma query no meu programa ele não retorna nada, mas o mais estranho é que para alguns valores de z103_rec_key_1 ele retorna, vc sabem o que pode ser? Meu código está abaixo:

Statement st;

        values = null;

        String sql = "SELECT z103_rec_key, z103_rec_key_1 FROM z103"
                + " where z103_rec_key_1 = '" + base.substring(0, 3).toUpperCase() + "01"
                + this.recKeyTo7(reckey) + "'";


        try {

            st = this.localbase50.createStatement();

            System.out.println("Sql from comparez103 " + sql);

            ResultSet rs = st.executeQuery(sql);
            ArrayList list = new ArrayList();


            if (rs.next()) {

                String z00_rec_key = rs.getString(1);

                System.out.println("z103_rec_key = " + z00_rec_key );

                list.add(z00_rec_key);
            }else{

                System.out.println("ResultSet Vazio");
            }

5 Respostas

squall926

Ola!
Eu não sei se é esse seu problema, mas eu nunca usei:

rs.getString(1);
//eu sempre uso
rs.getString("nomedocamponatabela);
maquiavelbona

ResultSet.getString() tem duas assinaturas, uma que recebe um int que corresponde ao índice do campo e uma que recebe o nome do campo. Então o problema não é esse.

Já tentou usar PreparedStatement para não ter que ficar se preocupando em isolar a procura? E já viu como está montando a SQL final para a consulta que não funciona?

Até!

Luiz-SP

maquiavelbona:
.

Já tentou usar PreparedStatement para não ter que ficar se preocupando em isolar a procura? E já viu como está montando a SQL final para a consulta que não funciona?

Até!

Então, já ressolvi, coisas do oracle, mas aproveitando que vc falou do assunto, não vi o PreparedStatement , na verdade sempre fiz desse jeito, mas vou estudar o PreparedStatement e vou cair dentro do Hibernate. O que vc usa para persistência? Eu faço muito projeto para busca em texto, ou seja, tenho de usa muito sql com like e %, como ficariam querys assim no hibernate, vc faz idéia da performace, portabilidade, essas coisa?

maquiavelbona

LuizClaudio:
maquiavelbona:
.

Já tentou usar PreparedStatement para não ter que ficar se preocupando em isolar a procura? E já viu como está montando a SQL final para a consulta que não funciona?

Até!

Então, já ressolvi, coisas do oracle, mas aproveitando que vc falou do assunto, não vi o PreparedStatement , na verdade sempre fiz desse jeito, mas vou estudar o PreparedStatement e vou cair dentro do Hibernate. O que vc usa para persistência? Eu faço muito projeto para busca em texto, ou seja, tenho de usa muito sql com like e %, como ficariam querys assim no hibernate, vc faz idéia da performace, portabilidade, essas coisa?

Procure por Criteria. Lá podes achar coisas interessantes e desapontadoras. Algumas ( diria até várias ) vezes irás recorrer a HQL para solucionar os seus problemas, infelizmente.

As questões sobre performance, portabilidade, facilidade de codificação ( com o Hibernate Annotations ) já foram amplamente discutidos aqui, mas para não ter que sair procurando: performance não é a grande prejudicada se souberes configurar direitinho e se tiveres como disponibilizar um cache para as consultas de leitura. Portabilidade é o clássico: desde que tenhas o JDBC driver e o dialeto, ele trabalha muito bem. O que me faz usar Hibernate ainda é a velocidade de construção que ele me proporciona.

Até!

N

LuizClaudio:

Então, já ressolvi, coisas do oracle, mas aproveitando que vc falou do assunto, não vi o PreparedStatement , na verdade sempre fiz desse jeito, mas vou estudar o PreparedStatement e vou cair dentro do Hibernate. O que vc usa para persistência? Eu faço muito projeto para busca em texto, ou seja, tenho de usa muito sql com like e %, como ficariam querys assim no hibernate, vc faz idéia da performace, portabilidade, essas coisa?

Cara, como vc resolveu isso?
pq tb to trabalhando com oracle e somente os dados que estou tentando pegar de uma tabela nova que criei, não estão chegando.
todo o resto está ok.
deve estar faltando algum detalhe nessa tabela, para que ela possa permitir ao meu programa java pegar as informações.

Criado 22 de fevereiro de 2008
Ultima resposta 21 de jul. de 2010
Respostas 5
Participantes 4