Como eu poderia fazer no meu pacote controle para chamar os 2 metodos, fazer a verificação e dps la na visão exibir se o cpf não foi cadastrado… e se for cadastrado ele insere normal.
no metodo do validação, no DAO, eu fiz a pesquisa passando por parametro a placa digitada… se ele não localizar a placa na consulta ele cai na exceção…
Aprenda uma coisa: try…catch serve pra capturar ERROS. Não existir a tal placa no BD não é um erro! Apenas não existe e pronto. Sendo assim, depois da linha ResultSet rs = pst.executeQuery();, faça um tratamento verificando se o ResultSet está vazio e então retorne o que deseja na sua validação.
O catch serve pra tratar erros, dentro dele vc pode colocar algum retorno, mas é importante que vc coloque uma msg de erro, vc tem que saber que algo deu errado. Gravar o erro, imprimir no console, alguma coisa, colocar try…catch e não fazer nenhum tratamento é pior do que não colocar, pq vc acaba “escondendo” um erro.
OBS: Já conversamos por MSN, mas achei justo com os demais do GUJ postar aqui qual era seu real problema, para ajudar os demais.
//recomedações dizem para usar nome de metodo = verbo.
public boolean validarCampo(String parametro) throws RemoteException, SQLException{
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
boolean isCampoValido = false;
try
{
conn= Conexao.getConnection();
StringBuilder sql = new StringBuilder("select ");
sql.append("CD_OCORRENCIA ");
sql.append("from OCORRENCIA ");
sql.append("where CD_OCORRENCIA = ?");
pstmt = conn.prepareStatement(sql.toString());
pstmt.setString(1,parametro);
rs = pstmt.executeQuery();}
//caso entre significa que algum registro foi encontrado
if(rs.next())
{
isCampoValido = true;
}
return isCampoValido;
}
catch (Exception erro)
{
//caso haver forte concorrencia no seu banco de dados use o autocommit = false da conexão, e também para não
// entupir de transações não finalizadas no banco.
if(conn != null)
{
conn.rollback();
}
throw erro;
}
finally
{
//use uma classe do tipo UtilConexao.fecharConexoes() para não fazer esse mesmo procedimento em todos os DAO.
if(pstmt != null)
{
pstmt.close();
}
if(rs != null)
{
rs.close();
}
if(conn != null)
{
conn.close();
}
}