Boa noite pessoal!!!
Este código faz uma verificação no banco antes de cadastrar algum usuário.
O problema é:
Eu já testei a consulta e o insert separados e ambos funcionam!!!!!!!!!!
Quando eu monto a estrutura no if(){} eu pergunto se o cpf consta no banco se não constar ele passa para o else{} e cadastra os dados.
Teoricamente era para fazer isso, mas infelizmente não acontece.
Segue o bendito:
public class CadPessoal extends HttpServlet {
Conexao conexao = new Conexao();
public void init(){
try {
conexao.getConnection();
System.out.println("*************OK!!!!");
} catch (SQLException ex){
ex.printStackTrace();
System.out.println("Error de conexão "+ex);
}catch (Exception e){
System.out.println("Falha ao carregar driver.");
return;
}
}
String cadSucesso = "www/profissional/cadastrar/sucesso.jsp";
String cadError = "www/profissional/cadastrar/pageError.jsp";
CadastreStaff c1 = new CadastreStaff();
int cd_identificacao = 0;
String nm_cliente = "";
String ds_endereco = "";
int nr_endereco = 0;
int nr_complemento = 0;
String ds_bairro = "";
String ds_cidade = "";
String ds_estado = "";
int nr_telefone = 0;
int nr_celular = 0;
int nr_rg = 0;
String nr_cpf = "";
String ds_estado_civil = "";
String ds_sexo = "";
String ds_email = "";
int nr_cep = 0;
String ic_filhos = "";
int nr_filhos = 0;
String nm_conjuge = "";
String ds_area_interesse = "";
String ds_naturalidade = "";
String ds_nacionalidade = "";
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
c1.setCliente(request.getParameter("ds_Nome"));
c1.setEndereco(request.getParameter("ds_Endereco"));
c1.setNumeroEndereco(Integer.parseInt(request.getParameter("nr_Numero")));
c1.setBairro(request.getParameter("ds_Bairro"));
c1.setCidade(request.getParameter("ds_Cidade"));
c1.setEstado(request.getParameter("ds_Estado"));
c1.setTelefone(Integer.parseInt(request.getParameter("nr_Telefone")));
c1.setCelular(Integer.parseInt(request.getParameter("nr_Celular")));
c1.setRg(Integer.parseInt(request.getParameter("nr_RG")));
c1.setCpf(request.getParameter("nr_CPF"));
c1.setEstadoCivil(request.getParameter("ds_EstadoCivil"));
c1.setSexo(request.getParameter("ds_Sexo"));
c1.setEmail(request.getParameter("ds_Email"));
c1.setCep(Integer.parseInt(request.getParameter("nr_Cep")));
c1.setFilhos(request.getParameter("temFilho"));
c1.setAreaInteresse(request.getParameter("ds_AreaInteresse"));
//Declaração que trata comando SQL
PreparedStatement statement = null;
ResultSet rs = null;
String consulta = "SELECT nr_cpf FROM tbl_dados_pessoais WHERE nr_cpf = ? ";
String inserir = "INSERT INTO tbl_dados_pessoais(nm_cliente, ds_endereco, nr_endereco," +
"ds_bairro, ds_cidade, ds_estado, nr_telefone, nr_celular, nr_rg, nr_cpf, ds_estado_civil, ds_sexo," +
"ds_email, nr_cep, ic_filhos, ds_area_interesse) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
try{
Connection con = conexao.getConnection();
statement = con.prepareStatement(consulta);
statement.setString(1,c1.getCpf());
rs = statement.executeQuery();
if(rs.next()){
if(c1.getCpf().equals(rs.getString(1))){
response.sendRedirect(cadError);
}else{
statement = con.prepareStatement(inserir);
statement.setString(1,c1.getCliente());
statement.setString(2,c1.getEndereco());
statement.setInt(3,c1.getNumeroEndereco());
statement.setString(4,c1.getBairro());
statement.setString(5,c1.getCidade());
statement.setString(6,c1.getEstado());
statement.setInt(7,c1.getTelefone());
statement.setInt(8,c1.getCelular());
statement.setInt(9,c1.getRg());
statement.setString(10,c1.getCpf());
statement.setString(11,c1.getEstadoCivil());
statement.setString(12,c1.getSexo());
statement.setString(13,c1.getEmail());
statement.setInt(14,c1.getCep());
statement.setString(15,c1.getFilhos());
statement.setString(16,c1.getAreaInteresse());
statement.executeUpdate();
response.sendRedirect(cadSucesso);
}
}
conexao.fechaStatement(statement);
conexao.fechaResultSet(rs);
conexao.fechaConexao(con);
}catch(SQLException e){
e.printStackTrace();
System.out.println(e.toString());
}
catch(Exception e){
System.out.println(e.toString());
}
}
}
Mais uma dúvida:
- Quando eu estou fazendo a captura dos dados sempre dá erro quando o usuário deixa algum campo do tipo inteiro sem preencher!!!!!! Existe alguma forma de tratamento para este problema???? porque não é elegante o código de erro estourar na tela do usuário..
Muito obrigado
note: que eu pus ele como int so pra mostrar como alterar abaixo segue o comando: