[RESOLVIDO] Excluir registros de uma table do bootstrap com o botão excluir

14 respostas
C

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 ?

14 Respostas

D

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

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?

<table class="table">
						<thead>
							<tr>
								<th>ID</th>
								<th>Nome</th>
								<th>Matricula</th>
								<th>Ações</th>
							</tr>
						</thead>
						<tbody>
							<tr>

								<td>${professor.professor_id }</td>
								<c:forEach var="professor" items="${professores}">
									  <td>${professor.nome}</td>
										<td>${professor.matricula }</td>
										<td class="actions"><a class="btn btn-success btn-xs"
										href="fazer.html">Visualizar</a> <a
										class="btn btn-warning btn-xs" href="editar.html">Editar</a> <a
										class="btn btn-danger btn-xs" href="#" data-toggle="modal"
										data-target="#delete-modal">Excluir</a></td>
							</tr>
							</c:forEach>
							
						</tbody>
					</table>

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

Inserir o id no retorno, oras.

C

Está falando no retorno do método ListarTodos() que já retorna o arraylist?

C

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);

public int cadastrar(Professor professor) {
    		String sql = "insert into professor (administrador, matricula) values (?,?)";
    		try (Connection conn = ConnectionFactory.getConnection(); PreparedStatement stm = conn.prepareStatement(sql);) {

			stm.setInt(1, professor.getAdministrador());
			stm.setString(2, professor.getMatricula());

			stm.executeUpdate();
			String sqlQuery = "SELECT LAST_INSERT_ID()";
			try (PreparedStatement stm2 = conn.prepareStatement(sqlQuery); ResultSet rs = stm2.executeQuery();) {
				if (rs.next()) {
					professor.setProfessor_id(rs.getInt(1));
				}

			} catch (SQLException e) {
				e.printStackTrace();
			}

		} catch (SQLException e) {
			e.printStackTrace();
		}
		return professor.getProfessor_id();
	}

o problema é que o método listarTodos é do tipo professor, ai não consigo retornar int

D

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

Certo, mas tem como eu ter um return de um INT no método listar que é do tipo Professor?

D

Professor não possui um id?

C

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

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

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

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

Consegui o glória, deu certo, Darlan, obrigado pela paciênciaaa, mas saiba que valeu a pena!

C

adkadasdsdasd

Criado 30 de abril de 2019
Ultima resposta 4 de mai. de 2019
Respostas 14
Participantes 2