Problema pra Excluir registro listado, não exclui no banco

2 respostas
daojspjava
W

Estou desenvolvendo uma aplicação para para controlar entidades religiosas, seus membros, patrimonio, entre outros, usando metodologia DAO, JTSL, Beans, entre outras fontes possíveis de desenvolvimento.

O fato é que quando listo os registros em forma de tabela e incluo botoes de excluir e editar ao lado do registro e clico para remover ele não remove retornando a listar a mesma tela. Além do mais o menu, que tipo sanfona, trava quando listado os registros. o modulo de cadastro esta funcionando normalmente e o menu não trava.

Alguém pode me ajudar ?

Arquivo: UsuarioDao.java

> package br.com.syschurch.jdbc.dao;

> import br.com.syschurch.jdbc.javabeans.Usuario;
> import br.com.syschurch.jdbc.factory.ConnectionFactory;
> import br.com.syschurch.jdbc.interfaces.UsuarioInterface;
> import java.sql.Connection;
> import java.sql.PreparedStatement;
> import java.sql.ResultSet;
> import java.sql.SQLException;
> import java.util.ArrayList;
> import java.util.List;

> public class UsuarioDao implements UsuarioInterface {

>     private Connection connection;

>     private List<Usuario> listaUsuarios = new ArrayList<Usuario>();

>     public UsuarioDao() {
>         this.connection = new ConnectionFactory().getConnection();
>     }

>     public void adicionarUsuario(Usuario usuario) {

>         String sql = "INSERT INTO tb_user (tb_username, tb_usersenha, tb_userbloqueado, tb_useremail) VALUES (?, ?, ?, ?);";
>         try {
>             PreparedStatement ps = connection.prepareStatement(sql);
>             ps.setString(1, usuario.getTb_username());
>             ps.setString(2, usuario.getTb_usersenha());
>             ps.setString(3, usuario.getTb_userbloqueado());
>             ps.setString(4, usuario.getTb_useremail());
>             ps.executeUpdate();
>             ps.close();
>             connection.close();

>         } catch (SQLException erroSQL) {
>         }
>     }

>     public void excluirUsuario(Usuario usuario) {

>         String sql = "DELETE FROM tb_user WHERE id_user = ?;";
>         try {
>             PreparedStatement ps = connection.prepareStatement(sql);
>             ps.setString(1, usuario.getId_user());
>             ps.executeUpdate();
>             ps.close();
>             connection.close();
>         } catch (SQLException erro) {
>         }
>     }

>     public void editarUsuario(Usuario usuario) {

>         String sql = "UPDATE tb_user SET tb_username = ?, tb_usersenha = ?, tb_userbloqueado = ?, tb_useremail = ?;";
>         try {
>             PreparedStatement ps = connection.prepareStatement(sql);
>             ps.setString(1, usuario.getTb_username());
>             ps.setString(2, usuario.getTb_usersenha());
>             ps.setString(3, usuario.getTb_userbloqueado());
>             ps.setString(4, usuario.getTb_useremail());
>             ps.executeUpdate();
>             ps.close();
>             connection.close();
>         } catch (SQLException erro) {
>             throw new RuntimeException(erro);
>         }
>     }

>     public boolean existeUsuario(Usuario usuario) {

>         boolean achou = false;

>         String sql = "SELECT * FROM tb_user WHERE tb_useremail = ?;";

>         try {
>             PreparedStatement ps = connection.prepareStatement(sql);
>             ps.setString(1, usuario.getTb_useremail());
>             ResultSet resultSet = ps.executeQuery();

>             if (resultSet.next()) {
>                 achou = true;
>             }
>             ps.close();
>             connection.close();
>             resultSet.close();

>         } catch (Exception e) {

>         }
>         return achou;
>     }

>     public List<Usuario> listarUsuario() {

>         List<Usuario> listaUsuario = new ArrayList<Usuario>();

>         try {
>             String sql = "SELECT * FROM tb_user;";

>             PreparedStatement ps = connection.prepareStatement(sql);
>             ResultSet resultSet = ps.executeQuery();

>             while (resultSet.next()) {

>                 Usuario usuario = new Usuario();

>                 usuario.setId_user(resultSet.getString("id_user"));
>                 usuario.setTb_username(resultSet.getString("tb_username"));
>                 usuario.setTb_useremail(resultSet.getString("tb_useremail"));
>                 usuario.setTb_userbloqueado(resultSet.getString("tb_userbloqueado"));
>                 listaUsuario.add(usuario);
>             }
>             ps.close();
>             connection.close();
>             resultSet.close();
>         } catch (Exception erro) {
>         }
>         return listaUsuario;
>     }

>     public Usuario consultarUsuario(Usuario usuario) {

>         try {

>             String sql = "SELECT * FROM tb_user WHERE tb_username = ?;";

>             PreparedStatement ps = connection.prepareStatement(sql);
>             ps.setString(1, usuario.getTb_useremail());
>             ResultSet resultSet = ps.executeQuery();

>             if (resultSet.next()) {
>                 usuario.setId_user(resultSet.getString("id_user"));
>                 usuario.setTb_username(resultSet.getString("tb_username"));
>                 usuario.setTb_useremail(resultSet.getString("tb_useremail"));
>                 usuario.setTb_userbloqueado(resultSet.getString("tb_userbloqueado"));
>             }
>             ps.close();
>             connection.close();
>             resultSet.close();
>         } catch (Exception e) {
>         }
>         return usuario;
>     }

>     @Override
>     public List<Usuario> getlistaUsuarios() {

>         try {
>             String sql = "SELECT * FROM tb_user;";
>             PreparedStatement ps = connection.prepareStatement(sql);
>             ResultSet resultSet = ps.executeQuery();

>             while (resultSet.next()) {
>                 Usuario usuario = new Usuario();
>                 usuario.setId_user(resultSet.getString("id_user"));
>                 usuario.setTb_username(resultSet.getString("tb_username"));
>                 usuario.setTb_useremail(resultSet.getString("tb_useremail"));
>                 usuario.setTb_userbloqueado(resultSet.getString("tb_userbloqueado"));
>                 listaUsuarios.add(usuario);
>             }
>             ps.close();
>             connection.close();
>             resultSet.close();

>         } catch (SQLException erro) {
>             throw new RuntimeException(erro);
>         }
>         return listaUsuarios;

>     }

> }

Arquivo: ConnectionFactory.java

> package br.com.syschurch.jdbc.factory;

> import java.sql.Connection;
> import java.sql.DriverManager;
> import java.sql.SQLException;

> public class ConnectionFactory {

>     private String driver = "com.mysql.jdbc.Driver";
>     private String url = "jdbc:mysql://localhost:3306/db_portaldosol";
>     private String email = "invited";
>     private String senha = "w190496c";

>     public Connection getConnection() {
>         try {
>             Class.forName(driver);
>             return DriverManager.getConnection(url, email, senha);
>         }
>         catch (SQLException erro){
>             throw new RuntimeException(erro);
>         }
>         catch (ClassNotFoundException erro){
>             throw new RuntimeException(erro);
>         }
>         
>     }
> }

Arquivo Usuario.java

package br.com.syschurch.jdbc.javabeans;

import java.io.Serializable;

public class Usuario implements Serializable {

private String id_user;
private String tb_username;
private String tb_useremail;
private String tb_usersenha;
private String tb_userbloqueado;
public String getTb_username() {
    return tb_username;
}
public void setTb_username(String tb_username) {
    this.tb_username = tb_username;
}
public String getTb_useremail() {
    return tb_useremail;
}
public void setTb_useremail(String tb_useremail) {
    this.tb_useremail = tb_useremail;
}
public String getTb_usersenha() {
    return tb_usersenha;
}
public void setTb_usersenha(String tb_usersenha) {
    this.tb_usersenha = tb_usersenha;
}
public String getTb_userbloqueado() {
    return tb_userbloqueado;
}
public void setTb_userbloqueado(String tb_userbloqueado) {
    this.tb_userbloqueado = tb_userbloqueado;
}
public String getId_user() {
    return id_user;
}
public void setId_user(String id_user) {
    this.id_user = id_user;
}
public void setUsuario(String usuario) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

}

Arquivo: UsuarioInterface.java

> package br.com.syschurch.jdbc.interfaces;

> import br.com.syschurch.jdbc.javabeans.Usuario;
> import java.util.List;

> public interface UsuarioInterface {
>     
>     public void adicionarUsuario(Usuario usuario);
>     public void excluirUsuario(Usuario usuario);
>     public void editarUsuario(Usuario usuario);
>     public boolean existeUsuario(Usuario usuario);
>     public Usuario consultarUsuario(Usuario usuario);
>     public List<Usuario> listarUsuario();
>     public List<Usuario> getlistaUsuarios();
>     
> }

e Finalmente o arquivo JSP: usuarioconsulta.jsp

1. <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

2. <jsp:useBean id="beanUsuariodao" class="br.com.syschurch.jdbc.dao.UsuarioDao"></jsp:useBean>

3. <c:import url="chamada.jsp"/>        
4. <c:import url="sidebar.jsp"/> 

5. <!-- Inicio Corpo !-->
6. <ul class="breadcrumb">  
7.     <li><a href="principal.jsp">Principal</a></li>
8.     <li><a href="#">Gerenciar Usuários</a></li>
9. </ul>
10. <div class="page-title">                    
11.     <h2><span class="fa fa-user"></span> Gerenciar Usuários</h2>
12. </div>

13. <div class="col-md-12">
14.     <a class="btn btn-primary"  href="usuariocadastra.jsp"><i class="fa fa-plus"></i> Novo Usuário</a>
15.     <br />
16.     <br />
17. </div>

18. <div class="col-md-12">
19.     <div class="panel panel-default">
20.         <div class="panel-body ">
21.             <form name="frmDados" id="form1" action="" method="post" class="form-horizontal form-bordered col-lg-12">
22.                 <div class="form-group pesquisa">
23.                     <label class="col-md-2 control-label text-black" for="pesq">PESQUISA:</label>
24.                     <div class="col-md-6">
25.                         <input type="text" name="pesq" value="" style="max-width:px;" id="pesq" required class="form-control "/>
26.                     </div>
27.                 </div>
28.                 <div class="form-group ">
29.                     <label class="col-md-2 control-label text-black"></label>
30.                     <div class="col-md-6">
31.                         <input type="submit" class="btn btn-primary" id="pesquisar" height="35px"  name ="Pesquisar" value="Pesquisar"   /> 
32.                     </div>
33.                 </div>
34.             </form>
35.         </div>
36.     </div>
37. </div>

38. <div class="col-md-12">                    
39.     <div class="panel panel-default">
40.         <div class="panel-body">
41.             <div id="print" class="table-responsive">
42.                 <form name="frmConsulta" id="form2" action="" method="">
43.                     <table id="DataTables_Table_0" class="table datatable dataTable no-footer" aria-describedby="DataTables_Table_0_info">
44.                         <thead>
45.                             <tr>
46.                                 <th style="min-width:30px">AÇÃO</th>
47.                                 <th>CODIGO</th>
48.                                 <th>USUARIO NOME</th>
49.                                 <th>EMAIL</th>
50.                             </tr>
51.                         </thead>
52.                         <tbody>
53.                             <c:forEach var="users" items="${beanUsuariodao.listaUsuarios}">                            
54.                                 <tr>
55.                                     <td>
56.                                         <a class="btn btn-info btn-rounded" href="" data-toggle="tooltip" data-placement="top" title="" data-original-title="Editar">
57.                                             <i style="margin-right: 0px;" class="fa fa-pencil"></i>
58.                                         </a>
59.                                         <a class="btn btn-danger btn-rounded excluir" href="UsuarioServlet?acao=Excluir&usuario=${users.id_user}" id="" data-toggle="tooltip" data-placement="top" title="" data-original-title="Excluir">
60.                                             <i style="margin-right: 0px;" class="fa fa-times"></i>
61.                                         </a></td>
62.                                     <td>${users.id_user}</td>
63.                                     <td>${users.tb_username}</td>
64.                                     <td>${users.tb_useremail}</td>
65.                                 </tr>
66.                             </c:forEach>                        
67.                         </tbody>
68.                     </table>
69.                 </form>
70.             </div>
71.         </div>
72.     </div>
73. </div>

74. <!-- Fim Corpo !-->

75. <c:import url="bottom.jsp"/>

2 Respostas

I

Codigo massa com JDBC, Servlets e JSP puro!!

Coloca o codigo do seu UsuarioServlet. Mas eu acho que sua tabela nao está atualizando depois de excluir, pq a referencia dos dados da lista está antiga ainda

W

Igor, obrigado pelo comentário. A proposta é justamente trabalhar com o código mais limpo. Segue abaixo o arquivo UsuarioServlet.java.

package br.com.syschurch.servlets.controller;

import br.com.syschurch.jdbc.dao.UsuarioDao;
import br.com.syschurch.jdbc.javabeans.Usuario;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UsuarioServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String acao = request.getParameter("acao");
        String destino = "usuarioconsulta.jsp";
        String mensagem = "";

        List<Usuario> lista = new ArrayList<>();

        Usuario usuario = new Usuario();
        UsuarioDao usuariodao = new UsuarioDao();

        try {

            // Se a ação for DIFERENTE de Listar são lidos os dados da tela
            if (acao.equalsIgnoreCase("Listar")) {
                lista = usuariodao.listarUsuario();
                request.setAttribute("listaUsuario", lista);                
            }
            if (acao.equalsIgnoreCase("Incluir")) {
                // Verifica se a matrícula informada já existe no Banco de Dados
                // Se existir enviar uma mensagem senão faz a inclusão
            }
            if (usuariodao.existeUsuario(usuario)) {
                mensagem = "Usuario informado já existe!";
            } else {
                usuariodao.adicionarUsuario(usuario);
            }
            if (acao.equalsIgnoreCase("Alterar")) {
                usuariodao.editarUsuario(usuario);
            }
            if (acao.equalsIgnoreCase("Excluir")) {
                usuariodao.excluirUsuario(usuario);
            }
            if (acao.equalsIgnoreCase("Consultar")) {
                usuario = usuariodao.consultarUsuario(usuario);
                request.setAttribute("usuario", usuario);                
//                destino = "aluno.jsp"; 
            }
        } catch (Exception e) {
            mensagem += e.getMessage();
            destino = "erro.jsp";
        }

        // Se a mensagem estiver vazia significa que houve sucesso!
        // Senão será exibida a tela de erro do sistema.
        if (mensagem.length()
                == 0) {
            mensagem = "Usuário Cadastrado com sucesso!";
        } else {
//            destino = "erro.jsp";
        }

        // Lista todos os registros existente no Banco de Dados
        lista = usuariodao.listarUsuario();

        request.setAttribute("listaUsuario", lista);
        request.setAttribute("mensagem", mensagem);

        //O sistema é direcionado para a página 
        //sucesso.jsp Se tudo ocorreu bem
        //erro.jsp se houver algum problema.
        RequestDispatcher rd = request.getRequestDispatcher(destino);
        rd.forward(request, response);
    }
}

ainda estou recebendo essa mensagem de saida no NetBeans… mas estou sem saber o que significa.

jQuery.Deferred exception: $(...).dataTable is not a function (10:03:30:181 | warning, null)
  at web/js/jquery.min.js:2
jQuery.Deferred exception: $.mpb is not a function (10:03:30:200 | warning, null)
  at web/js/jquery.min.js:2
jQuery.Deferred exception: $.mpb is not a function (10:03:30:217 | warning, null)
  at web/js/jquery.min.js:2
Criado 8 de abril de 2017
Ultima resposta 8 de abr. de 2017
Respostas 2
Participantes 2