private Pessoa carregar(ResultSet rs) throws SQLException { Pessoa pessoa = new Pessoa(); pessoa.setId(rs.getInt("id")); pessoa.setNome(rs.getString("nome")); pessoa.setEmail(rs.getString("email")); pessoa.setTelefone(rs.getString("telefone")); return pessoa; }
@Override public Pessoa salvar(Pessoa pessoa) throws DataAccessException { try { // 1) Conectar ao banco conectar(); String sql = null; PreparedStatement stmt = null; if (pessoa.getId() == null) { // insert sql = "INSERT INTO pessoas " + "(nome, email, telefone, tipo) " + "VALUES" + "(?, ?, ?, 0)"; stmt = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); } else { // update sql = "UPDATE pessoas SET nome=?, " + "email=?, telefone=? " + "WHERE id=?"; stmt = con.prepareStatement(sql); stmt.setInt(4, pessoa.getId()); } // seta o nome, email e telefone stmt.setString(1, pessoa.getNome()); stmt.setString(2, pessoa.getEmail()); stmt.setString(3, pessoa.getTelefone()); stmt.executeUpdate(); int id = 0; if (pessoa.getId() == null) { // recuperar o id atribuido pelo banco ResultSet rs = stmt.getGeneratedKeys(); rs.next(); id = rs.getInt(1); } else { id = pessoa.getId(); } return recuperarPorId(id); } catch (SQLException e) { throw new DataAccessException(e); } finally { try { // 5) Fechar a conex�o com o banco desconectar(); } catch (SQLException e) { throw new DataAccessException(e); } } }