Relacionamento um para muitos

Boa noite a todos. comecei a fazer uma pequena aplicação em java com swing. ficou a te interessante. poren so utiilazava uma tabela, agora gostaria de relaciona-la com outra.
tabela contato
seria uma contato pode nao ter nem uma forma de contato ou varias formas.

telresidencial
telefone comercial
telefone celular
email

como fazer isso ???

usando DAO nao estou ainda usando hibernate. quero esgotar o DAO.

Obrigado.

Não entendi sua dúvida, está com problemas para fazer o select no banco, o preenchimento das informações no Bean ou já possui todas as informações e quer saber como colocá-las na tela? Se possível posta a parte do código q vc está com dúvidas.

Obrigado pela atenção.
Tem razão. Eu estou patinando na implementação do DAO.
como as defino na classe (ligação de uma classe na outra)
e depois como as coloco na tela.

Obrigado

Um exemplo do q faço geralmente é:

  • Defino uma classe “Pessoa”;
  • Defino uma classe “Telefone”;
  • Se essa classe Pessoa possui apenas um telefone, crio uma variável do tipo Telefone dentro da classe Pessoa:
private Telefone fone;
  • Caso a pessoa possa ter 0 ou mais telefones, crio uma lista do tipo Telefone dentro da classe Pessoa:
private List<Telefone> listaFone = new ArrayList<>();

Depois disso é só preencher com os dados do banco conforme sua necessidade.
Não sei se é a melhor forma mas para mim é a que mais funciona!

Obrigado fabiocortolan.

eu tenho uma propriedade na classe pai que e um coleção é isso ?

como eu faco para persistir isso numa tabela.

sabe onde encontro material com isso ?

Muito obrigado pela ajuda.

Não entendi direito o q vc disse, mas o que vc precisa é simplesmente ter uma variável que instancie outra classe, ou seja, relacione uma com a outra, vou postar um exemplo completo abaixo:

public class Pessoa {
	private long idPessoa;
	private String nome;
        // Neste caso Pessoa pode conter 0 ou mais endereços
	private List<Endereco> listaEndereco = new ArrayList<Endereco>();
        // Neste caso Pessoa só pode ter um telefone
	private Telefone telefone = new Telefone();

	public long getIdPessoa() {
		return idPessoa;
	}

	public void setIdPessoa(long idPessoa) {
		this.idPessoa = idPessoa;
	}

	public String getNomeRazaoSocial() {
		return ConverteDados.toUpperCase(nomeRazaoSocial);
	}

	public void setNomeRazaoSocial(String nomeRazaoSocial) {
		this.nomeRazaoSocial = nomeRazaoSocial;
	}

	public void setListaEndereco(List<Endereco> listaEndereco) {
		this.listaEndereco = listaEndereco;
	}

	public List<EnderecoEletronico> getListaEndEletronico() {
		return listaEndEletronico;
	}

	public int getTelefone() {
		return telefone;
	}

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

Sobre a persistência, no caso acima eu geralmente faço uma classe para persistir cada um dos objetos (Pessoa, Endereço, Telefone), logo após persistir pessoa faço a persistência dos outros dois, sendo que no caso exemplificado acima faço um laço para persistir cada objeto Endereço.

Muito obrigado pela ajuda. Entendi tenho que ter uma propriedade que nao da mais é do que um lista de objetos(colecção) certo ?

Agora como persistir isso ?

agradeco pela sua ajuda foi de grande valia.

Bom dia !!!

É isso mesmo, faz uma lista d objetos com os objetos q vc precisa, para persistir é o mesmo q qualquer outro, a diferença é q vc pode setar o autoCommit como false para manter a integridade dos dados, segue exemplo básico:

// Persistir Pessoa
public boolean inserirPessoa(Pessoa p) {
    try {
        Connection con = ConnectionFactory.getConnection(); // Abre uma nova conexão
        con.setAutoCommit(false); // Seta a opção autoCommit para "False"

	PreparedStatement ps = con.prepareStatement("comando SQL para inserir pessoa"); // Comando para inserir a pessoa no banco
        ps.executeUpdate(); // Executa o update na tabela

        // Faz a persistência de cada endereço utilizando a mesma conexão
        for (Endereco e : p.getListaEndereco) {
            this.inserirEndereco(con, e);
        }

        // Se tudo for persistido corretamente faz o commit e fecha o Statement
        con.commit();
        ps.close();
    } catch (SQLException ex) {
        // Se alguma excessão ocorrer faz o rollback em todas as alterações (inclusive na pessoa)
        con.rollback();
        // Tratamento para excessão SQL
    }  finally {
        // Independente do resultado volta o autoCommit para "True" e fecha a conexão
        con.setAutoCommit(true);
        con.close();
    }
}

// Persistir Endereco
public boolean inserirEndereco(Connection con, Endereco end) {
    try {
        // Persiste o endereço no banco utilizando uma conexão existente
        PreparedStatement ps = con.prepareStatement("comando SQL para inserir endereco");
        ps.executeUpdate();
        ps.close();
    } catch (SQLException ex) {
        throw ex;
    }
}

Um detalhe, já li alguns artigos sobre inserção multipla de dados, ou seja, utilizar o INSERT para inserir 2 ou mais endereços, mas não fui muito a fundo nisso, por enquanto o código acima já é uma boa base p/ o q preciso.

fabiocortolan, bom dia muito obrigado estou implementado. depois que acabar posto o resultado.

valeu, muito obrigado pela ajuda…