private int inserir(Endereco e) {
    int status = -1;
    Connection con = null;
    PreparedStatement pstm = null;
    try {
      con = ConnectionFactory.getConnection();
      pstm = con.prepareStatement(INSERT, Statement.RETURN_GENERATED_KEYS);
      pstm.setString(1, e.getRua());
      pstm.execute();
      try (ResultSet rs = pstm.getGeneratedKeys()) {
        rs.next();
        status = rs.getInt(1);
      }
    } catch (Exception ex) {
      JOptionPane.showMessageDialog(null, "Erro ao inserir um endereço: " + ex.getMessage());

    } finally {

    }
    try {
      ConnectionFactory.closeConnection(con, pstm);

    } catch (Exception ex) {
      JOptionPane.showMessageDialog(null, "Erro ao fechar conexão: " + ex.getMessage());
    }
    return status;
  }
 @Override
 public int salvar(Endereco e) {
   if (e.getCodigo() == 0) {
     return inserir(e);
   }
   return -1;
 }