Estou iniciando no estudo dee JDBC e banco de dados. Meu banco de dados tem 2 tabelas: clientes e endereco. A tabela cliente tem uma coluna código q é a chave primária, uma coluna nome q tem o nome do cliente e uma coluna endereco q tem um chave estrangeira para a tabela enderecos. Quando executo meu metodo para buscar cliente pro codigo obtenho um ResultSet q ao manipular tenho acesso ao doigo e nome, mas n às colunas de endereço. Gostaria de saber como faço pra manipular esses dados de endereço atravez do ResultSet gerado por um SELECT na tablea clientes. Vou botar o código do método de bsucaPorCodigo, de cara sei q n posso manipular os dados de enderecos, a pergunta eh como vaou fazer isso. Antecipadamente vlw pessoal.
public Cliente buscarClientePorCodigo(long codigo) throws ClienteInexistenteException {
Cliente retorno = null;
try {
Class.forName(JDBC_DRIVER);
connection = DriverManager.getConnection(URL_BANCO_DE_DADOS, "postgresql", "postgre");
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM clientes WHERE codigo = " +codigo);
if (resultSet.next()){
String rua = resultSet.getString("rua");
String numero = resultSet.getString("numero");
String complemento = resultSet.getString("complemento");
String bairro = resultSet.getString("bairro");
String cep = resultSet.getString("cep");
String referencia = resultSet.getString("referencia");
Endereco endereco = new Endereco(rua, numero, complemento, bairro, cep, referencia);
String telefone = resultSet.getString("telefone");
String celular = resultSet.getString("celular");
String email = resultSet.getString("email");
Boolean disponibilidadeReceberEmail = resultSet.getBoolean("disponibilidade_para_receber_email");
Contato contato = new Contato(telefone, celular, email, disponibilidadeReceberEmail);
String nome = resultSet.getString("nome");
Cliente cliente = new Cliente(nome, endereco, contato);
connection.close();
statement.close();
resultSet.close();
retorno = cliente;
} else {
throw new ClienteInexistenteException();
}
} catch (SQLException e) {
e.printStackTrace();
//TODO TRATAR EXCEÇÃO
} catch (ClassNotFoundException e) {
e.printStackTrace();
//TODO TRATAR EXCEÇÃO
}
return retorno;
}