@Override
    public Pessoa inserir(IEntidade entidade) throws SQLException {
        if (entidade instanceof Pessoa) {
            Pessoa pessoa = (Pessoa) entidade;

            String sql = "insert into pessoa (id_pessoa, nome, sexo, data_nascimento)";
            sql += " values (?,?,?,?)";

            Connection connection = ConnectionFactory.getConnection();

            try {
                
                PreparedStatement stmt = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
                
                if (pessoa.getIdPessoa() != 0) {
                    stmt.setInt(1, pessoa.getIdPessoa());
                } else {
                    stmt.setString(1, null);
                }
                stmt.setString(2, pessoa.getNome());
                stmt.setString(3, pessoa.getSexo());
                if (pessoa.getDataNascimento() != null) {
                    stmt.setDate(4, new java.sql.Date(pessoa.getDataNascimento().getTime()));
                } else {
                    stmt.setString(4, null);
                }

                stmt.executeUpdate();
                ResultSet rs = stmt.getGeneratedKeys();

                if (rs.next()) {
                    pessoa.setIdPessoa(rs.getInt(1));
                }
                
            } catch (Exception e) {
                e.printStackTrace();
            }
            
            return pessoa;

        }
        return null;

    }