Insercao em duas tabelas ao mesmo tempo

Boa tarde,
Estou precisando de uma ajuda! E o seguinte tenho duas tabelas Contato[Nome,Sobrenome,Telefone,Email] e Endereco[idContato,Logradouro,Cidade,Estado]. Tenho um formulario em java como todos esses campos e preciso que quando o usuario click em salvar ele insira nas duas tabelas simultaneamente. Minha duvida e a seguinte como eu pego o id que esta sendo inserido na tabela contato naquele instante ja que meu banco e auto-incremento para este campo.
Qual o melhor jeito de fazer isso?[/url]

Colega, na verdade esse “simultaneamente” é só aparente, na realidade o que vai ter que acontecer nesse modelo que você tem aí é primeiro inserir o contato, depois inserir o endereço. Se sua tabela autoincrementa o campo id, logo após confirmar a primeira inserção você pode dar um…

…o que te retornará o id do último contato inserido, que você pode então passar para o insert na tabela endereço. Perceba essa sequência: 1 - insere contato; 2 - lê contato para obter o último inserido; 3 - usa o contato lido para inserir endereço.
Pode também analizar o seguinte: nesse teu modelo um contato pode ter mais de um endereço? Se não, então as duas tabelas poderiam ser uma só, o que acabaria com o problema por si só…

Insira o contato primeiro, use o metodo getGeneratedKeys() para pegar o id gerado e insira o endereço usando esse id.

Ola boa noite, estou tentando fazer utilizando o getGeneratedKeys(), mas nao estou conseguindo, gostaria de saber se vc na poderia me mostrar um exemplo assim poderia corrigir meus erros, segue meu fonte cheio de erros:

instrucao = conexao.createStatement();
instrucao.executeUpdate(qry,Statement.RETURN_GENERATED_KEYS);
rs = instrucao.getGeneratedKeys();
System.out.println(rs.getInt(0));
System.out.println(instrucao.getGeneratedKeys());
instrucao2 = conexao.createStatement();
instrucao2.executeUpdate(“insert into endereco(Contatos_idContatos,Logradouro,Complemento,TipoLogradouro,Bairro,Cep,Cidade,UF) values (”+rs.getInt(0)+",’"+jTFCCLogradouroContato.getText()+"’,’"+jTFCCComplemento.getText()+"’,’"+jCBTipoLogradouroContato.getSelectedItem()+"’,’"+jTFCCBairroContato.getText()+"’,’"+jTFCCCep.getText()+"’,’"+jTFCCCidadeContato.getText()+"’,’"+jCBCCuf.getSelectedItem()+"’)");
conexao.close();
instrucao.close();
instrucao2.close();