mas esse select está retornando dados de dois objetos, como vou fazer para retornar os dois objetos?
nebster
faça 2 o mesmo while instanciando 2 objetos…
Usuario obj1 = new Usuario();
Endereco obj2 = new Endereco();
obj1.setNome(rs.getString(“nome”));
obj2.setRua(rs2.getString(“rua”));
Margel_Douglas
A grosso modo vc teria que fazer isso em jdbc…
Connectioncon=null;try{finalStringSQL="select usuario.codigousuario, usuario.nome, usuario.cpf, usuario.rg, usuario.orgao, usuario.foneresidencial, usuario.fonecelular,usuario.crmv, endereco.rua, endereco.cep, endereco.bairro, endereco.numero,endereco.cidade, endereco.uf from usuario, endereco where usuario.endereco_codigoendereco = endereco.codigoendereco"finalStringDRIVER="jdbc:postgresql:";//DRIVER DO SEU BANCO --EXEMPLO COM POSTGRESQLfinalStringURL="//localhost:5432/";finalStringDATABASE="seu_banco";finalStringUSER="seu_usuario_do_banco";finalStringPASS="sua_senha_do_banco";con=DriverManager.getConnection(DRIVER+URL+DATABASE,USER,PASS);PreparedStatementppst=con.prepareStatement(SQL);ResultSetrs=ppst.executeQuery();//SUPONHO QUE VC TENHA UMA CLASSE "Usuario"List<Usuario>users=newArrayList<Usuario>();while(rs.next()){Usuariou=newUsuario();u.setCodigo(rs.getInt("nome_da_coluna_que_representa_o_codigo_no_banco");u.setNome(rs.getString("nome_da_coluna_que_representa_o_nome_no_banco");//...TODOS OS ATRIBUTOS SETADOSusers.add(u);}}catch(Exceptione){System.out.println(e.getMessage());}finally{con.close();}
É sempre recomendado que vc coloque isso em uma DAO, que vai gravar o teu usuário e fazer todas as operações com o banco, e também que vc separe a parte de conexão em uma classe que ficaria encarregada de conectar e apenas te devolver a conexão, para que vc não tenha isso em todas as outras DAOs do seu sistema … Recomendo estudar um pouco sobre MVC caso queira ter tudo mais organizado, mas a forma de conexão é esta… Abraço!
iltonk
pessoal esse selec tem um relacionamento quero saber como faço para retornar os dados das duas tabelas do relacionamento ao mesmo tempo para montar um dataTable em jsf
erico_kl
Bom, pela sua SQL você tem um relacionamento Usuário Nx1 Endereço, onde 1 usuário possui 1 endereço e 1 endereço pode ser de vários usuários, certo?
Basicamente você deve mapear isso para suas classes..
//...Usuariousuario;while(rs.next()){usuario=newUsuario();usuario.setXXX(...);// preenche os campos do usuario com o ResultSetif(rs.getString("rua")!=null){Enderecoendereco=newEndereco();// popula o endereco do usuário...usuario.setEndereco(endereco);}}
Entendeu?
Se você quiser facilitar isso tudo, te aconselho a dar uma olhada no link do MentaBean que está na minha assinatura.. É bem o que você precisa ;).