/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.senac.tads.pi3.andersonguilhermegomes.agenda;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author anderson.mleal
 */
public class AgendaDAO {

    private Connection obterConexao() throws SQLException, ClassNotFoundException {
        Connection conn = null;

        //passo1: registrar driver JDBC
        Class.forName("org.apache.derby.jdbc.ClientDataSource");

        //passo 2: Abrir conexão
        conn = DriverManager.getConnection("jdbc:derby://localhost:1527/agendabd;SecurityMechanism=3",
                "app", // usuario
                "app"); // senha

        return conn;
    }

    public void listarPessoas() {
        Statement stmt = null;
        Connection conn = null;

        String sql = "SELECT ID_PESSOA, NM_PESSOA, DT_NASCIMENTO, VL_TELEFONE, VL_EMAIL FROM TB_PESSOA";
        try {
            conn = obterConexao();
            stmt = conn.createStatement();
            ResultSet resultados = stmt.executeQuery(sql);

            DateFormat formatadorData = new SimpleDateFormat("dd/MM/yyyy");

            while (resultados.next()) {
                Long id = resultados.getLong("ID_PESSOA");
                String nome = resultados.getString("NM_PESSOA");
                Date dataNasc = resultados.getDate("DT_NASCIMENTO");
                String email = resultados.getString("VL_EMAIL");
                String telefone = resultados.getString("VL_TELEFONE");
                System.out.println(String.valueOf(id) + ", " + nome + ", " + formatadorData.format(dataNasc) + ", " + email + ", " + telefone);
            }

        } catch (SQLException ex) {
            Logger.getLogger(AgendaDAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(AgendaDAO.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException ex) {
                    Logger.getLogger(AgendaDAO.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    Logger.getLogger(AgendaDAO.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }

    }
    
    public void alterarPessoa() {
        Statement stmt = null;
        Connection conn = null;

        String sql = "SELECT ID_PESSOA, NM_PESSOA, DT_NASCIMENTO, VL_TELEFONE, VL_EMAIL FROM TB_PESSOA";
        try {
            conn = obterConexao();
            stmt = conn.createStatement();
            ResultSet resultados = stmt.executeQuery(sql);

            DateFormat formatadorData = new SimpleDateFormat("dd/MM/yyyy");

            while (resultados.next()) {
                Long id = resultados.getLong("ID_PESSOA");
                String nome = resultados.getString("NM_PESSOA");
                Date dataNasc = resultados.getDate("DT_NASCIMENTO");
                String email = resultados.getString("VL_EMAIL");
                String telefone = resultados.getString("VL_TELEFONE");
                System.out.println(String.valueOf(id) + ", " + nome + ", " + formatadorData.format(dataNasc) + ", " + email + ", " + telefone);
            }

        } catch (SQLException ex) {
            Logger.getLogger(AgendaDAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(AgendaDAO.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException ex) {
                    Logger.getLogger(AgendaDAO.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    Logger.getLogger(AgendaDAO.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }

    }
}

@@ -1221,33 +1221,35 @@
 LECT ID_
-PESSOA, NM_PESSOA
+CONTATO, NM_CONTATO
 , DT_NAS
@@ -1615,38 +1615,39 @@
 dos.getLong(%22ID_
-PESSOA
+CONTATO
 %22);%0D%0A           
@@ -1682,38 +1682,39 @@
 s.getString(%22NM_
-PESSOA
+CONTATO
 %22);%0D%0A           
@@ -2933,16 +2933,37 @@
 rPessoa(
+Agenda agenda, int id
 ) %7B%0D%0A   
@@ -3052,846 +3052,395 @@
  = %22
-SELECT ID_PESSOA, NM_PESSOA, DT_NASCIMENTO, VL_TELEFONE, VL_EMAIL FROM TB_PESSOA%22;%0D%0A        try %7B%0D%0A            conn = obterConexao();%0D%0A            stmt = conn.createStatement();%0D%0A            ResultSet resultados = stmt.executeQuery(sql);%0D%0A%0D%0A            DateFormat formatadorData = new SimpleDateFormat(%22dd/MM/yyyy%22);%0D%0A%0D%0A            while (resultados.next()) %7B%0D%0A                Long id = resultados.getLong(%22ID_PESSOA%22);%0D%0A                String nome = resultados.getString(%22NM_PESSOA%22);%0D%0A                Date dataNasc = resultados.getDate(%22DT_NASCIMENTO%22);%0D%0A                String email = resultados.getString(%22VL_EMAIL%22);%0D%0A                String telefone = resultados.getString(%22VL_TELEFONE%22);%0D%0A                System.out.println(String.valueOf(id) + %22, %22 + nome + %22, %22 + formatadorData.format(dataNasc) + %22, %22 + email + %22, %22 + telefone);
+UPDATE TB_CONTATO set NM_CONTATO = '%22 + agenda.getNome() + %0D%0A                %22', DT_NASCIMENTO =%22 + agenda.getDataNasc() + %22, VL_TELEFONE =%22 + agenda.getTelefone() +%0D%0A                %22 VL_EMAIL = %22 + agenda.getEmail() +%22 where ID_CONTATO =%22 + id + %22;%22;%0D%0A        try %7B%0D%0A            conn = obterConexao();%0D%0A            stmt = conn.createStatement();%0D%0A            stmt.executeUpdate(sql);%0D%0A
 %0D%0A  
@@ -3441,35 +3441,32 @@
 %0D%0A%0D%0A            
-%7D%0D%0A
 %0D%0A        %7D catc

update Agenda - Anderson Leal