StringselectByCodBanco="SELECT COD_BANCO, NOME FROM TB_BANCO WHERE COD_BANCO = ? ORDER BY COD_BANCO, NOME"
Segundo: cod_banco é do tipo varchar? Pois está setando um tipo String na sua query, caso contrario, retire as aspas duplas.
Outro detalhe, os nomes das colunas do banco estão corretas? Substitua o:
//busca o valor da segunda coluna, será útil.
System.out.println(rs.getString(2));
Outro detalhe, jogue esse mesmo select em seu banco e veja se está correto, caso os passos acima não resolva seu problema poste o código completo ok? Pois a Exception que gerou diz que um ou mais campos encontrados são inválidos.
Abraços!
nel
Fabio, acredito que você esteja equivocado, é 1 mesmo ao invés de 0. Certo?
P.s: estou afirmando que deve iniciar em 1.
fabiozoroastro
Nel, me equivoquei sim.
Abri a doc aqui e vi que tinha postado errado. A contagem dos parâmetros começa com zero é no objeto Query do hibernate.
Já editei o post anterior.
nel
Ah ok! Nada como uma documentação da api não é?
Abraços e boa tarde!
zoren
não esquece de daar um next() no result set antes de tentar pegar os dados dele
leorbarbosa
Seguindo as dicas:
rodei a query por fora: ok;
atualizei o repositório de acordo com a explicação (ficou assim):
StringselectByCodBanco="SELECT COD_BANCO, NOME FROM TB_BANCO WHERE COD_BANCO = '?' ORDER BY COD_BANCO, NOME"
pois cod_banco é varchar.
No java: PreparedStatement ps = qry.loadQuery(con, "selectByCodBanco");
ps.setString(1, "356");
Teria esquecido de mais alguma coisa?
nel
Olá.
Seguiu a dica do zoren, ou seja, seu ResultSet precisa dar um next() (pegar o próximo registro).
ResultSet rs = ps.executeQuery();
//se existe um registro, então....
if(rs.next()){
System.out.println(rs.getString(2));
//ou
System.out.println(rs.getString("NOME"));
}
Abraços!
leorbarbosa
O erro ocorre no ‘setString’ e antes do executar a query.
nel
Faça o seguinte: altere a linha do PreparedStatement para:
//creio que a variavél con refere-se a um objeto do tipo java.sql e já esteja preenchida com a conexão certo?
PreparedStatement ps = con.preparedStatement(selectByCodBanco);
Abraços.
leorbarbosa
Pessoal,
muito OBRIGADO pelos posts. Na verdade, o erro estava na montagem do repositório (correto conforme abaixo):