Fórum Pesquisa entre duas tabelas na classe DAO #419752
11/07/2012
0
tenho duas tabelas :
TB_CLIENTES
id_cliente Primary Key,
nome_fantasia
cnpj
cod_vendedor (chave estrangeira)
TB_VENDEDOR
cod_vendedor (PK)
nome
endereco
No java tenho as classes ClienteDTO e VendedorDTO com os mesmos campos do banco de dados e os seus respectivos gets e sets.
Minha classe DAO está com o seguinte código
public List<ClienteDTO> pesquisaCliente(int cod) throws ClassNotFoundException, SQLException {
Connection minhaConexao = ClasseConexao.getConexao();
List<ClienteDTO> lista = new ArrayList<>();
String instrucao = SELECT tb_clientes.razao, tb_clientes.nome_fantasia from tb_clientes +
where tb_clientes.cod_representante = ? ;
try {
PreparedStatement carroca = minhaConexao.prepareStatement(instrucao);
carroca.setInt(1, cod);
ResultSet rs = carroca.executeQuery();
while (rs.next()) {
ClienteDTO cliente = new ClienteDTO();
cliente.setRazao(rs.getString(razao));
cliente.setNomeFantasia(rs.getString(nome_fantasia));
lista.add(cliente);
}
} finally {
minhaConexao.close();
}
return lista;
}
Até aqui tudo bem, pois consigo passar a lista para a pagina jsp que desejo e mostro os dados de acordo com o código do representante passado. O problema é que quero mostrar tambem os campos do vendedor, ou seja, ao invés de pesquisar apenas por tb_clientes.razao e tb_clientes.cnpj, quero fazer essa busca :
SELECT tb_clientes.razao, tb_usuario.nome from tb_clientes, tb_usuario where tb_clientes.cod_representante = ? ;
Mas não tenho a mínima ideia de como fazer. Alguem saberia me explicar como faço isso?
obrigado
Thadeu Batista
Curtir tópico
+ 0Posts
12/07/2012
Davi Costa
Depois na classe DAO, ou vc cria uma só para ele, ou escolhe Cliente ou Vendedor para implementar esse método, vc cria um método que na chamada sql chame as duas tabelas (algum inner join)
att Davi
Gostei + 0
12/07/2012
Thadeu Batista
Realmente é uma saída criar uma classe para juntar os atributos das tabelas clientes e vendedor e funciona muito bem, mas esse procedimento está dentro dos padrões javaWeb? É o caminho correto juntar os atributos das duas classes para fazer esse tipo de consulta?
Gostei + 0
12/07/2012
Davi Costa
cliente.setVendedor(new Vendedor());
e sempre que precisar setar os atributos do vendedor:
cliente.getVendedor().setAtributo(...)
Sem precisar criar essa classe já citada, todas as duas formas não vejo problema nenhum
att Davi
Gostei + 0
12/07/2012
Thadeu Batista
obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)