Select em várias tabelas para exibir dados no jtable. como fazer?

5 respostas
W

Olá galera do guj,
estou recorrendo a vcs para pedir ajuda.
estou com um problema para selecionar dados de três tabelas que são a tabela livros, autor e editora e em cada tabela quero selecionar as seguintes colunas:
tabela livros:
decricao, codigo_autor, codigo_editora, isbn, ano_publicacao, dataCad
tabela autor:
nome_autor
tabela editora:
nome_editora

o que eu quero fazer é o seguinte eu tenho uma jtable que exibe os dados da tabela livros sem problema, só que o autor e a editora está exibindo apenas o código de cada um e não o nome e estou querendo fazer um select para que sejam exibidos os nomes do autor e da editora correspondente ao codigo que está registrado na tabela livros. abaixo tenho o código que estou usando:

private void PreencheTabela(){
        tbLivros.setModel(tmLivros);
        try{

            con = new Conexao().getConnection();
            String slq = "SELECT"+
     "livros.`descricao_livro` AS livros_descricao_livro,"+
     "autor.`nome_autor` AS autor_nome_autor,"+
     "editora.`nome_editora` AS editora_nome_editora"+
     "livros.`ISBN` AS livros_ISBN,"+
     "livros.`ano_publicacao` AS livros_ano_publicacao,"+
     "livros.`data_cadastro` AS livros_data_cadastro,"+

"FROM `livros` livros,`autor` autor,`editora` editora";
            stm = con.prepareStatement(slq);
            rs = stm.executeQuery();
            while(rs.next()){
            tmLivros.addRow(new String[]{
                rs.getString("descricao_livro"),
                rs.getString("nome_autor"),
                rs.getString("nome_editora"),
                rs.getString("ISBN"),
                rs.getString("ano_publicacao"),
                rs.getString("data_cadastro")
            });
           }
        }catch(SQLException erro){
            JOptionPane.showMessageDialog(null,"Erro ao fazer a seleção " + erro.getMessage());
        }
    }

alguém sabe uma solução?

5 Respostas

A

Deixa eu te pergunta, qual é cardinalidade da relação entre AUTOR, EDITORA e LIVROS???
Outra coisa, você quer fazer uma consulta entre essas tres tabelas, da tabela AUTOR vc quer pegar o “nome_autor”, da tabela LIVROS você quer selecionar o " decricao, codigo_autor, codigo_editora, isbn, ano_publicacao, dataCad ", e da tabela EDITORA você quer selecionar o "nome_editora ", para fazer essa consulta é necessário uma condição, apartir de qual condição você quer fazer essa consulta???

douglaskd

Não sei se esses métodos já estão implementados mas seria mais ou menos isso…

public String getEditoraById(int id){

// criar toda a implementação para que dado o id o método retorne a string nome_editora,

return nome_editora
}

na parte: rs.getString("nome_editora") // pelo que vc disse isso ta retornando o ID....tenta trocar o nome então...

o método vc vai usar assim....

new editora().getEditoraById(Integer.parseInt(rs.getString("id_editora")));

o nome do autor é o mesmo esquema

to mais confuso que vc.rss

ViniGodoy
  1. Cadê as classes para os livros, editoras e autores?
  2. Por que você ainda está usando DefaultTableModel?
  3. Não faltou fechar o statement e o resultset?
A

ViniGodoy:
1. Cadê as classes para os livros, editoras e autores?
2. Por que você ainda está usando DefaultTableModel?
3. Não faltou fechar o statement e o resultset?

DefaultTableModel é um problema, hoje eu utilizo AbstractTableModel, aprendir com o VinyGodoy ai…

guimsotoni

Olá galera, estou com o mesmo problema.
Gostaria que ao invés do código aparecesse o nome da categoria, da marca e do status. Alguém pode me ajudar?


Criado 14 de outubro de 2010
Ultima resposta 30 de out. de 2011
Respostas 5
Participantes 5