Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henrique-raptor

Recuperar Valores de um checkbox no servlet e gravar no banco

Recommended Posts

Comecei a pouco a aprender Java, completamente iniciante.
Estou tentando fazer um sistema simples onde eu realizo um cadastro de curriculo. Na pagina de cadastro existe dois grupos de checkbox onde faço um select no banco por tanto tem o mesmo nome.
Um para linguagem de programação e outro de banco de dados.
Até ai OK.
Estou usando JSP e servlet;

Eu travei na seguinte parte, no meu servlet to recuperando os valores do checkbox dessa forma ("String[] valorlinguagem = request.getParameterValues("linguagem");" , assim ele me retorna um array de string com os meus checkbox que foram habilitados.

  1. @servelet
  2. for (String valorling : valorlinguagem){
  3. inserelinguagem.setId_curriculoLinguagem(request.getParameter(valorling));
  4. }


Acontece que na minha classe o metodo "setId_curriculoLinguagem"ele ta me retornando um Long porque irei pegar somente o valor ID da linguagem para gravar na tabela. E ta dando erro nessa linha.
Gostaria que alguem com mais experiencia que eu me desse uma orientação nesse caso, se eu to fazendo da forma correta ou não.

Segue os meus codigos

Classe CurriculoLinguagem

  1. public class CurriculoLinguagem {
  2. private long id_curriculoLinguagem;
  3. private long id_curriculo;
  4. private long id_linguagem;
  5. public CurriculoLinguagem(){
  6. this.id_curriculoLinguagem = id_curriculoLinguagem;
  7. this.id_curriculo = id_curriculo;
  8. this.id_linguagem = id_linguagem;
  9. }
  10. public long getId_curriculoLinguagem() {
  11. return id_curriculoLinguagem;
  12. }
  13. public void setId_curriculoLinguagem(long id_curriculoLinguagem) {
  14. this.id_curriculoLinguagem = id_curriculoLinguagem;
  15. }
  16. public long getId_curriculo() {
  17. return id_curriculo;
  18. }
  19. public void setId_curriculo(long id_curriculo) {
  20. this.id_curriculo = id_curriculo;
  21. }
  22. public long getId_linguagem() {
  23. return id_linguagem;
  24. }
  25. public void setId_linguagem(long id_linguagem) {
  26. this.id_linguagem = id_linguagem;
  27. }
  28. }

O meu DAO onde to inserindo os dados.

  1. public class InsereCheckLinguagemDao {
  2. public void SalvaLinguagem(CurriculoLinguagem linguagem){
  3. String ultimo = ("SELECT MAX(i_cdcurriculo) FROM curriculo");
  4. StringBuilder sql = new StringBuilder();
  5. sql.append("insert into");
  6. sql.append(" curriculoLinguagem(i_cdcurriculo, i_cdlinguagem)");
  7. sql.append(" values(?,?)");
  8. try(Connection connection = FabricaConexao.getConnection();
  9. PreparedStatement ps = connection.prepareStatement(sql.toString())){
  10. ps.setNString(1, ultimo);
  11. ps.setLong(2, linguagem.getId_curriculoLinguagem());
  12. ps.execute();
  13. }catch(SQLException e){
  14. e.printStackTrace();
  15. }
  16. }
  17. }


Se alguem puder me ajugar nisso ai ficarei grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está recuperando o valor do parâmetro como String... porém ele é o ID da linguagem (espero eu).

 

Então é só transformar a String num long.

 

 

inserelinguagem.setId_linguagem(Long.parseLong(valorling)); 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.