@Override
    public List<Livro> listAll() {
        Connection conn = null;
        PreparedStatement pstm = null;
        ResultSet rs = null;
        List<Livro> livros = new ArrayList<>();
        try{
            conn = ConnectionFactory.getConnection();
            pstm = conn.prepareStatement(LIST);
            rs = pstm.executeQuery();
            while (rs.next()){
                Livro l = new Livro();
                l.setId_livro(rs.getInt("livro.id_livro"));
                l.setTitulo(rs.getString("livro.titulo_lv"));
                l.setSubtitulo(rs.getString("livro.subtitulo_lv"));
                l.setPalavrasChave(rs.getString("livro.palavraChave_lv"));
                l.setPreco(rs.getDouble("livro.preco_lv"));
                l.setRoyalty(rs.getDouble("livro.royalty_lv"));
                l.setResumo(rs.getString("livro.resumo_lv"));
                l.setEdicao(rs.getInt("livro.nEdi_lv"));
                l.setVolume(rs.getDouble("livro.volume_lv"));
                l.setQtEstoque(rs.getInt("livro.qtEstoque_lv"));
                l.setIsbn(rs.getInt("livro.isbn"));
                
                Editor ed = new Editor();
                ed.setId_editor(rs.getInt("Editora.id_editora"));
                l.setEditor(ed);
                
                Loja lj = new Loja();
                lj.setId_loja(rs.getInt("Loja.id_loja"));
                
                //Autor 
                //l.setAutor(rs.getInt("id_autor"));
                //livros.add(l);
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(null,"Erro ao listar livros " + e);
        }finally{
            try{
                ConnectionFactory.closeConnection(conn, pstm, rs);
            }catch(Exception e){
                JOptionPane.showMessageDialog(null,"Erro ao desconectar com o banco " + e);
            }
        }
        return livros;
    }