No sistema que estou fazendo para estudos, no meu cadastro o usuário através de um comboBox informa qual cidade pertence.
No como aparece para o usuário Cidade + Estado, por exemplo "São Paulo - SP".
Porém no momento de gravar no Banco de Dados, se grava o código da cidade do tipo Long, por exemplo, código 10.
No momento da gravação, acontece o seguinte erro:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NumberFormatException: null
java.lang.Long.parseLong(Long.java:375)
java.lang.Long.parseLong(Long.java:468)
servlet.AdicionaCadastroServlet.processRequest(AdicionaCadastroServlet.java:70)
servlet.AdicionaCadastroServlet.doGet(AdicionaCadastroServlet.java:96)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.
O trecho da Servlet que corresponde ao trecho que grava no banco de dados, ficou dessa maneira:
public class AdicionaCadastroServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
String idCidade = request.getParameter("idCidade");
Cadastro novoCadastro = new Cadastro();
novoCadastro.setIdCidade(Long.parseLong(idCidade));
try {
out.println("<html>");
out.println("<body>");
out.println("Cadastro" + novoCadastro.getNomeCadastro() + "adicionada com sucesso");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
CadastroDAO:
public void adicionar(Cadastro cadastro){
String sql = "insert into cadastro (nomeCadastro, rg, ufRg, cpf, "
+ "endereco, bairro, dataCadastro, dataNascimento"
+ "telefone, celular, idCidade) values (?,?,?,?,?,?,?,?,?,?,?)";
try{
PreparedStatement stmt = conectar.prepareStatement(sql);
stmt.setString(1, cadastro.getNomeCadastro());
stmt.setString(2, cadastro.getRg());
stmt.setString(3, cadastro.getUfRg());
stmt.setString(4, cadastro.getCpf());
stmt.setString(5, cadastro.getEndereco());
stmt.setString(6, cadastro.getBairro());
stmt.setDate(7, new Date(cadastro.getDataCadastro().getTimeInMillis()));
stmt.setDate(8, new Date(cadastro.getDataNascimento().getTimeInMillis()));
stmt.setString(9, cadastro.getTelefone());
stmt.setString(10, cadastro.getCelular());
stmt.setLong(11, cadastro.getIdCidade());
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
Alguém pode me ajudar?
Obrigado!