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;
}
}