[RESOLVIDO] Inserção com JDBC insere apenas valores nulos na tabela

Olá pessoal, não estou conseguindo fazer inserção no banco de dados, apesar de conseguir criar as tabelas, todos os valores estão sendo inseridos nulos na tabela pessoa.

Alguém sabe o que possa ser.

Seguem os códigos:

public class Conexao {

    private static Connection connection;

    public static void conectarBanco() {
        try {
            System.out.println("Iniciando a conexão com o banco de dados...");

            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/agenda";
            connection = DriverManager.getConnection(url, "root", "mysql");

            System.out.println("Conectado ao banco de dados!");

        } catch (SQLException ex) {
            System.out.println("Erro SQLException: " + ex);
        } catch (ClassNotFoundException ex) {
            System.out.println("Erro ClassNotFoundException " + ex);
        }
    }

    public static void fecharBanco() {

        if (connection != null) {
            try {
                connection.close();
                System.out.println("Desconectado do banco de dados!");
            } catch (Exception ex) {
                System.out.println("Erro ao desconectar do banco de dados: " + ex);
            }
        }
    }

    public static void criarTabelaPessoa() {

        try {
            String sql = "CREATE TABLE PESSOA(ID INTEGER, NOME VARCHAR(30))";
            PreparedStatement pstm = connection.prepareStatement(sql);
            pstm.executeUpdate();
            connection.commit();

        } catch (SQLException ex) {
            //System.out.println("Erro: " + ex);
        }
        System.out.println("Tabela PESSOA criada com sucesso!");
    }

    public static void criarTabelaTelefone() {

        try {
            String sql = "CREATE TABLE TELEFONE"
                    + "(ID INTEGER, "
                    + "NUMERO VARCHAR(10), "
                    + "ID_PESSOA INTEGER)";
            PreparedStatement pstm = connection.prepareStatement(sql);
            pstm.executeUpdate();
            connection.commit();

        } catch (SQLException ex) {
            //System.out.println("Erro: " + ex);
        }
        System.out.println("Tabela TELEFONE criada com sucesso!");
    }
    
    public static void inserirPessoa(Pessoa p) {
        
        try {         
            String sql = "INSERT INTO PESSOA VALUES(ID, NOME)";
            PreparedStatement pstm = connection.prepareStatement(sql);
            pstm.executeUpdate();
            connection.commit();
            
        } catch (SQLException ex) {
            System.out.println("Erro: " + ex);
        }
        System.out.println("Inserçao na tabela PESSOA feita com sucesso!");
    }
}
public class Aplicacao {

    private Conexao conexao;

    public Aplicacao() {
        conexao.conectarBanco();
        conexao.criarTabelaPessoa();
        conexao.criarTabelaTelefone();
        
        Pessoa p1 = new Pessoa(1, "maria");
        Pessoa p2 = new Pessoa(2, "ana");
        Pessoa p3 = new Pessoa(3, "jose");
        Pessoa p4 = new Pessoa(4, "joao");
        
        conexao.inserirPessoa(p1);
        conexao.inserirPessoa(p2);
        conexao.inserirPessoa(p3);
        conexao.inserirPessoa(p4);
        
        conexao.fecharBanco();
    }

    public static void main(String[] args) {

        new Aplicacao();
    }
}
public class Pessoa {

    private int id;
    private String nome;
    private List<Telefone> telefones = new ArrayList<Telefone>();

    public Pessoa(int id, String nome) {
        this.id = id;
        this.nome = nome;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public List<Telefone> getTelefones() {
        return telefones;
    }

    public void setTelefones(List<Telefone> telefones) {
        this.telefones = telefones;
    }

    public void addTelefone(Telefone t) {
        telefones.add(t);
    }

    public void removeTelefone(Telefone t) {
        telefones.remove(t);
    }

    @Override
    public String toString() {
        return "Código: " + id + " - " 
                + " Nome: "  + nome + " - " + "Telefones: " + telefones;
    }
}
public class Telefone {
    
    private int id;
    private String telefone;
    private int id_pessoa;

    public Telefone(int id, String telefone, int id_pessoa) {
        this.id = id;
        this.telefone = telefone;
        this.id_pessoa = id_pessoa;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getId_pessoa() {
        return id_pessoa;
    }

    public void setId_pessoa(int id_pessoa) {
        this.id_pessoa = id_pessoa;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }
    
}

Modifica o seu método de inserir pessoa para ver se vai.


    public static void inserirPessoa(Pessoa p) {   
           
        try {           
            String sql = "INSERT INTO PESSOA VALUES(?, ?)";   
            PreparedStatement pstm = connection.prepareStatement(sql);
            pstm.setInt(1, p.getId()); 
            pstm.setString(2, p.getNome());   
            pstm.executeUpdate();   
            connection.commit();   
               
        } catch (SQLException ex) {   
            System.out.println("Erro: " + ex);   
        }   
        System.out.println("Inserçao na tabela PESSOA feita com sucesso!");   
    }

[quote=leocantanhede]Modifica o seu método de inserir pessoa para ver se vai.

[code]

public static void inserirPessoa(Pessoa p) {   
       
    try {           
        String sql = "INSERT INTO PESSOA VALUES(?, ?)";   
        PreparedStatement pstm = connection.prepareStatement(sql);
        pstm.setInt(1, p.getId()); 
        pstm.setString(2, p.getNome());   
        pstm.executeUpdate();   
        connection.commit();   
           
    } catch (SQLException ex) {   
        System.out.println("Erro: " + ex);   
    }   
    System.out.println("Inserçao na tabela PESSOA feita com sucesso!");   
}

[/code][/quote]

Obrigado leocantanhede.

Era essa alteração mesmo.