public List<Usuario> selectAll() {

    List<Usuario> usuarios = new ArrayList<Usuario>();
    String sql = "SELECT * FROM TB_USUARIO ORDER BY USERNAME";

    try {

      pstm = con.prepareStatement(sql);
      ResultSet rs = pstm.executeQuery();
      while (rs.next()) {

        Usuario usuario = new Usuario();
        usuario.setId(rs.getLong(1));
        usuario.setUserName(rs.getString(2));
        usuario.setSenha(rs.getString(3));

        usuarios.add(usuario);
      }

    } catch (SQLException e) {
      e.printStackTrace();
      throw new RuntimeException();
    } finally {
      ConnectionFactory.closeConnection(con, pstm);
    }

    return usuarios;
  }
  public Usuario selectByEmail(String email) {

    Usuario usuario = null;
    String sql = "SELECT * FROM TB_USUARIO WHERE E_MAIL = ?";

    try {

      pstm = con.prepareStatement(sql);
      pstm.setString(1, email);

      ResultSet rs = pstm.executeQuery();
      while (rs.next()) {

        usuario = new Usuario();
        usuario.setId(rs.getLong(1));
        usuario.setNomeDoUsuario(rs.getString(2));
        usuario.setEmail(rs.getString(3));
        usuario.setUserName(rs.getString(4));
        usuario.setSenha(rs.getString(5));
      }

    } catch (SQLException e) {
      e.printStackTrace();
      throw new RuntimeException("Não foi possivel selecionar informações do banco de dados.");
    } finally {
      ConnectionFactory.closeConnection(con, pstm);
    }

    return usuario;
  }