boa noite !!! bom… para estudos, quero desenvolver, por exemplo, onde em um cadastro de clientes, o mesmo cliente pode ter varios endereços, tipo comercial, residencial etc,
e varios contatos, como tio, avo, pai etc. o que eu fiz, com muita pesquisa, consegui chegar no cadastro do cliente em si, adicionando no banco de dados, removendo, alterando o nome do cliente,
o endereço etc. mas o que não estou conseguindo visualizar em como fazer no meu código, é por exemplo, é adicionar um cliente com mais de um endereço ( pensei na enum ) ,
adicionar contatos para o mesmo cliente , será que vcs poderiam me dar o começo, partindo do meu código de como começar
segue abaixo:
a classe Cliente:
public class Cliente {
private long id;
private String nome;
private String endereco;
private String tel;
private String email;
private String sexo;
/*public Contato(long id, String nome, String endereco, String tel,
String email, String sexo) {
super();
this.id = id;
this.nome = nome;
this.endereco = endereco;
this.tel = tel;
this.email = email;
this.sexo = sexo;
}*/
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((email == null) ? 0 : email.hashCode());
result = prime * result
+ ((endereco == null) ? 0 : endereco.hashCode());
result = prime * result + (int) (id ^ (id >>> 32));
result = prime * result + ((nome == null) ? 0 : nome.hashCode());
result = prime * result + ((sexo == null) ? 0 : sexo.hashCode());
result = prime * result + ((tel == null) ? 0 : tel.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Contato other = (Contato) obj;
if (email == null) {
if (other.email != null)
return false;
} else if (!email.equals(other.email))
return false;
if (endereco == null) {
if (other.endereco != null)
return false;
} else if (!endereco.equals(other.endereco))
return false;
if (id != other.id)
return false;
if (nome == null) {
if (other.nome != null)
return false;
} else if (!nome.equals(other.nome))
return false;
if (sexo == null) {
if (other.sexo != null)
return false;
} else if (!sexo.equals(other.sexo))
return false;
if (tel == null) {
if (other.tel != null)
return false;
} else if (!tel.equals(other.tel))
return false;
return true;
}
@Override
public String toString() {
return "Contato [email=" + email + ", endereco=" + endereco + ", id="
+ id + ", nome=" + nome + ", sexo=" + sexo + ", tel=" + tel
+ "]";
}
}
a classe ContatoDao :
public class ContatoDao {
private Connection conexao;
public ContatoDao() throws SQLException {
this.conexao = CriaConexao.getConexao();
}
public void adiciona(Contato c1) throws SQLException {
// prepara a conexao
String sql = "insert into contato (nome, endereco, telefone, email, sexo)"
+ " values (?,?,?,?,?)";
PreparedStatement stmt = conexao.prepareStatement(sql);
// set os valores
stmt.setString(1, c1.getNome());
stmt.setString(2, c1.getEndereco());
stmt.setString(3, c1.getTel());
stmt.setString(4, c1.getEmail());
stmt.setString(5, c1.getSexo());
// executa
stmt.execute();
stmt.close();
JOptionPane.showMessageDialog(null, "Adicionado ao banco");
}
public List<Contato> getLista() throws SQLException {
String sql = "select * from contato";
PreparedStatement stmt = this.conexao.prepareStatement(sql);
ResultSet rset = stmt.executeQuery(); // pesquisou com o rset e guarda
// na lista
List<Contato> listaContato = new LinkedList<Contato>();
while (rset.next()) {
Contato c1 = new Contato(); // tive que tirar o construtor, porque ?
c1.setNome(rset.getString("nome"));
c1.setNome(rset.getString("endereco"));
c1.setNome(rset.getString("telefone"));
c1.setNome(rset.getString("email"));
c1.setNome(rset.getString("sexo"));
listaContato.add(c1);
}
rset.close();
stmt.close();
return listaContato;
}
public void alterar(Contato c1) throws SQLException {
String sql = "update contato set nome=?m endereco=?, telefone=?, email=?, sexo=? where id=?";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setString(1, c1.getNome());
stmt.setString(2, c1.getEndereco());
stmt.setString(3, c1.getTel());
stmt.setString(4, c1.getEmail());
stmt.setString(5, c1.getSexo());
stmt.setLong(6, c1.getId()); // porque o id ?
stmt.execute();
stmt.close();
}
public void remove(Contato c1) throws SQLException {
String sql = "remove from contato where id=?";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setLong(1, c1.getId());
stmt.execute();
stmt.close();
}
}
a classe main :
[code]
public class Main {
public static void conectar() throws SQLException {
Connection conexao = new CriaConexao().getConexao();
}
public static void adicionarContato() throws SQLException {
Contato contato = new Contato();
contato.setNome("Marcelo Paulo 3");
contato.setEndereco("Av Abel Correia");
contato.setTel("1235273129");
contato.setEmail("marcelo-rebello@uol.com.br");
contato.setSexo("m");
ContatoDao dao = new ContatoDao();
dao.adiciona(contato);
}
public static void alterarContatos() throws SQLException {
Contato contato = new Contato();
contato.setId(Long.valueOf(4)); // altera direto na posicao
contato.setNome("Marcelo Paulo Rebello Martins");
contato.setEndereco("Av Abel Correia");
contato.setTel("1235273129");
contato.setEmail("marcelo-rebello@uol.com.br");
contato.setSexo("m");
ContatoDao dao = new ContatoDao();
dao.alterar(contato);
}
public static void removeContatos() throws SQLException {
Contato contato = new Contato();
contato.setId(Long.valueOf(6));
ContatoDao dao = new ContatoDao();
dao.remove(contato);
}
public static void listaContatos() throws SQLException {
ContatoDao dao = new ContatoDao();
List<Contato> listaContatos = dao.getLista();
for (Contato contato : listaContatos) {
JOptionPane.showMessageDialog(null,
"------------------------------------------" + ""
+ " \nNome: " + "" + contato.getNome() + "\nEndereco : " + "" + contato.getEndereco());
/*+ "\nEndereco : " + "" + contato.getEndereco() + ""
+ "\n Telefone : " + "" + contato.getTel()
+ "\nemail : " + "" + contato.getEmail()
+ "\nTelefone : " + "" + contato.getTel()
+ "\n-----------------------------------------" ); */
}
}
public static void main(String[] args) throws SQLException {
conectar();
// adicionarContato();
// alterarContatos();
// removeContatos();
listaContatos();
}
}[/code]