Retornar uma consulta em uma lista com DAO jdbc

2 respostas
E

Estou com uma dúvida, como faço para montar uma lista retornando a publicação de uma select inner join, sendo que meu objeto(modelo) publicação tem atributos diferentes do retorno da lista.

O sistema está funcionando redondo mas gostaria de mostrar os compos e não o ID.

Travei aqui:
Na persistência em publicacaoDAO fiz isso:

public List listaCompleta() throws Exception {

        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            ps = conn.prepareStatement("SELECT publicacao.publicacao_id, livros.titulo, autores.nome, editora.editora_nome FROM livraria.autores INNER JOIN livraria.publicacao ON (autores.autor_id = publicacao.autor_id)     INNER JOIN livraria.editora        ON (publicacao.editora_id = editora.editora_id)      INNER JOIN livraria.livros ON (publicacao.isbn = livros.isbn)");
            rs = ps.executeQuery();
            List list = new ArrayList();
            while (rs.next()) {
                int idPublicacao = rs.getInt(1);
                String titulo = rs.getString(2);
                String autor = rs.getString(3);
                String editora = rs.String(4);
                list.add(new rs);
            }
            return list;
        } catch (Exception e) {
        }
    }

2 Respostas

yoshikichi
cria um POJO com as propriedades retornadas, por exemplo:
class seuPojo{
private int idPublicacao;
               private String titulo,autor,editora;
               //...get e setts
}
Ai vc add esse pojo na sua lista:
public List listaCompleta() throws Exception {

        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            ps = conn.prepareStatement("SELECT publicacao.publicacao_id, livros.titulo, autores.nome, editora.editora_nome FROM livraria.autores INNER JOIN livraria.publicacao ON (autores.autor_id = publicacao.autor_id)     INNER JOIN livraria.editora        ON (publicacao.editora_id = editora.editora_id)      INNER JOIN livraria.livros ON (publicacao.isbn = livros.isbn)");
            rs = ps.executeQuery();
            List list = new ArrayList();
            while (rs.next()) {
seuPojo po =new seuPojo();
               po.setIdPublicacao(rs.getInt(1));;
                po.setTitulo(rs.getString(2));
//assim por diante  os outros atributos
                list.add(po);
            }
            return list;
        } catch (Exception e) {
        }
    }

Sacou?
falow

E

yoshikichi,

:lol: Obrigado vou implementar.

Criado 27 de novembro de 2008
Ultima resposta 28 de nov. de 2008
Respostas 2
Participantes 2