[RESOLVIDO] Excluir registros de uma table do bootstrap com o botão excluir
14 respostas
C
cscalea
Galera, no meu projeto de desenv web, tenho na tela jsp de cadastro de professor e que tem uma table que guarda os dados que a pessoa inserir ali na hora, quero mudar a forma de excluir os registros da tabela, ao invés de abrir uma página JSP que peça pro usuário um ID, e exclua os dados vinculados a esse ID, quero algo mais simples e fácil, um botão excluir na table que faça todo esse trabalho…
já tenho o método deletar pronto, o botão está ali, só não consigo encontrar uma forma de excluir os registros diretamente pelo botão… vou ter que fazer essa request no mesmo servlet que está a inserção dos dados na table ?
Estes dados apresentados na tabela, vêm direto de uma servlet? Se sim, então você pode criar um doDelete lá, associar o clique do botão “Excluir” a uma requisição para o doDelete e, então, executar a exclusão. Em seguida, invocar a listagem, atualizando os dados que aparecem na tela.
C
cscalea
certo, só mais uma dúvida… Tô com um problema aqui, pq pra preencher essa tabela, tô usando o método ListarTodos() que percorre o banco pra listar a Matricula e o Perfil do professor, porém, o campo ID não está no método e ele não acompanha a inserção de dados na tabela, como posso fazer pra quando eu inserir os dados e o metodo ListarTodos ser executado, pegar o ID correto também?
O método de inserir tem essa consulta: String sqlQuery = “SELECT LAST_INSERT_ID()”;
Ai eu até consigo chamar fora do forEach o último ID inserido, mas não acompanha os novos dados inseridos na tabela…
D
darlan_machado1 like
Inserir o id no retorno, oras.
C
cscalea
Está falando no retorno do método ListarTodos() que já retorna o arraylist?
C
cscalea
Meu método cadastrar consegue pegar o último ID inserido, basta que no servlet eu instancie um ProfessorService, um Professor e faça:
int id = paisService.cadastrar(professor);
publicintcadastrar(Professorprofessor){Stringsql="insert into professor (administrador, matricula) values (?,?)";try(Connectionconn=ConnectionFactory.getConnection();PreparedStatementstm=conn.prepareStatement(sql);){stm.setInt(1,professor.getAdministrador());stm.setString(2,professor.getMatricula());stm.executeUpdate();StringsqlQuery="SELECT LAST_INSERT_ID()";try(PreparedStatementstm2=conn.prepareStatement(sqlQuery);ResultSetrs=stm2.executeQuery();){if(rs.next()){professor.setProfessor_id(rs.getInt(1));}}catch(SQLExceptione){e.printStackTrace();}}catch(SQLExceptione){e.printStackTrace();}returnprofessor.getProfessor_id();}
o problema é que o método listarTodos é do tipo professor, ai não consigo retornar int
D
darlan_machado1 like
Mas o que que tem a ver o cadastrar com o listar? Vocẽ cadastrou, ok, beleza. Agora, para listar (e permitir que você interaja com as ações que quer implementar), precisará, obrigatoriamente, retornar o id de cada elemento.
C
cscalea
Certo, mas tem como eu ter um return de um INT no método listar que é do tipo Professor?
D
darlan_machado1 like
Professor não possui um id?
C
cscalea
O professor tem ID, mas não está no construtor do model Professor, se no método listar todos eu quiser ter um return do último ID inserido, precisaria passar pro construtor, o que traria outros problemas pra mim
D
darlan_machado1 like
E você não pode alterar isso ou apenas não quer?
Esse atributo é fundamental na tela, para garantir que todas as ações correspondentes ao respectivo professor selecionado serão executadas de forma adequada e com o mínimo de esforço necessário.
C
cscalea
Não, é que por exemplo, se eu colocar o id no construtor do professor, terei que passar como parâmetro no professor que eu instanciei no servlet que faz a requisição dos parâmetros na página JSP, que são digitados… de onde vou tirar esse ID?
D
darlan_machado1 like
Nunca ouviu falar de sobrecarga de métodos?
Não existe um setter para o id?
Não pode passar null como valor deste parâmetro, para o construtor?
C
cscalea
Consegui o glória, deu certo, Darlan, obrigado pela paciênciaaa, mas saiba que valeu a pena!