Pessoal, já tentei várias coisas mas não consegui descobrir pq não esta executando ou não esta retornando nada na linha do comando sql e com isso não consigo realizar as validações que preciso. Segue abaixo método que criei:
public String verificaTitularCadastrado(BeneficiarioVO benef) throws ParseException{
conn = ConexaoBanco.getInstance().getConnection();
PreparedStatement stmt = null;
String resposta = null;
int parentesco = -1;
try{
stmt = conn.prepareStatement("select parentesco from pub.portalAtuCadastral where codAdmin = ? and " +
"numContr = ? and " +
“codUsuario = ?”);
stmt.setInt(1, benef.getCodAdmin());
stmt.setInt(2, benef.getNumContr());
stmt.setInt(3, benef.getCodUsuario());
ResultSet res = stmt.executeQuery();
while(res.next()){
parentesco = res.getInt("parentesco");
}
if (benef.getParentesco()>0){
if(parentesco==0){
resposta = pesquisaCpfCadastrado(benef);
}else{
resposta = "Cadastre primeiramente o Titular do Plano!";
}
}else{
resposta = pesquisaCpfCadastrado(benef);
}
}catch (SQLException e){
System.out.println(e.getMessage());
System.out.println("Erro SQL: " + e.getErrorCode());
}finally{
try{
stmt.close();
}catch (SQLException e){
System.out.println(e.getMessage());
}
}
return resposta;
}
utilize a tag de código para auxiliar a legibilidade do mesmo.
[code]public String verificaTitularCadastrado(BeneficiarioVO benef) throws ParseException{
conn = ConexaoBanco.getInstance().getConnection();
PreparedStatement stmt = null;
String resposta = null;
int parentesco = -1;
try{
stmt = conn.prepareStatement("select parentesco from pub.portalAtuCadastral where codAdmin = ? and " +
"numContr = ? and " +
"codUsuario = ?");
stmt.setInt(1, benef.getCodAdmin());
stmt.setInt(2, benef.getNumContr());
stmt.setInt(3, benef.getCodUsuario());
ResultSet res = stmt.executeQuery();
while(res.next()){
parentesco = res.getInt("parentesco");
}
if (benef.getParentesco()>0){
if(parentesco==0){
resposta = pesquisaCpfCadastrado(benef);
}else{
resposta = "Cadastre primeiramente o Titular do Plano!";
}
}else{
resposta = pesquisaCpfCadastrado(benef);
}
}catch (SQLException e){
System.out.println(e.getMessage());
System.out.println("Erro SQL: " + e.getErrorCode());
}finally{
try{
stmt.close();
}catch (SQLException e){
System.out.println(e.getMessage());
}
}
return resposta;
} [/code]
Se você executar esse sql no banco com os mesmos valores nos parâmetros ele retornar corretamente?
Você já debugou para ver se os parâmetros estão preenchidos? ou se da algum erro ao executar?
Conferiu se a conexão esta estabelecida, tipo fez outra consulta antes que deu retorno correto?
Falo isso pq a primeira vista não tem nada de errado!!
Posta a mensagem de erro que ta dando…
ex.PrintStackTrace();
Ja executei direto no banco o sql e esta correto, a conexao tbm pois tenho outros método funcionando. E o pior não da erro!
Só não alimenta o a variavel com o retorno do banco. Agora não sei se é o comando sql, se é o while, não tenho nem idéia.
Executa em modo Debug e vê o que ele faz passo a passo… E se ele alimenta teu return.
quando debuga o logo depois de fazer o executeQuery(), o res ta nullo?
Pessoal, consegui resolver. O problema eram os parametros que eu estava passando para a consulta. As variaveis tinham um validador de digitos e no que coloquei um digito errado não estava retornando nada na consulta sql.
Muito obrigado a todos pela atenção!