Aparecer dados do MySQL no Jtable, conexão!

quero que me ajudem a aparecer os dados inseridos nessa Jtable!
muito dificl, não sei onde colocar pra conectar com o banco, eu uso o a conexão em cada botão!
[color=darkblue] [/color][size=18] [/size]

consigo colocar os valores por parâmetro, m as não consigo “puxar” os valores do banco![color=green] [/color]
package br.com.views;

import br.com.lojaCDL.InicialLoja;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.swing.table.AbstractTableModel;

public class LocadoraTable extends AbstractTableModel{

 private final int col_nome =0;
 private final int col_genero=1;

 private List<InicialLoja> livros;
 public LocadoraTable(){
     livros = new ArrayList();
 }
 public LocadoraTable(List<InicialLoja> lista){
     this();
     livros.addAll(lista);
 }
@Override
public int getRowCount() {
    return livros.size();
}

@Override
public int getColumnCount() {
       return 2;
}
@Override
public String getColumnName(int column){
    if(column == col_nome){
        return "Nome";
    }else if (column == col_genero){
        return "Genero";
    }
    return " ";
}
@Override
public Class getColumnClass(int columnIndex){
    if(columnIndex == col_nome){
        return String.class;
    }else if(columnIndex == col_genero){
        return Integer.class;
    }
    return String.class;
}
  @Override
  public Object getValueAt(int rowIndex, int columnIndex) {
    //pega o produto da linha
     InicialLoja p = livros.get(rowIndex);

    //verifica qual valor deve ser retornado
    if (columnIndex == col_nome) {
        return p.getNome();
    } else if (columnIndex == col_genero) {
        return p.getgenero();
    }
    return "";
}
    @Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
    //pega o produto da linha
    InicialLoja p = livros.get(rowIndex);

    //verifica qual valor vai ser alterado
    if (columnIndex == col_nome) {
        p.setNome(aValue.toString());
    } else if (columnIndex == col_genero) {
        p.setgenero(aValue.toString());
    }
     fireTableDataChanged();
}
    public void ordenarPorNome() {
    Collections.sort(livros, new Comparator<InicialLoja>() {

        public int compare(InicialLoja o1, InicialLoja o2) {
            return o1.getNome().compareTo(o2.getNome());
        }
    });
     fireTableDataChanged();
}
      public void ordenarPorGenero() {
    //ordena pelo nome
    Collections.sort(livros, new Comparator<InicialLoja>() {

        public int compare(InicialLoja o1, InicialLoja o2) {
      return o1.getgenero().compareTo(o2.getgenero());     
        }
    });
     fireTableDataChanged();
}

}


package br.com.views;

import br.com.lojaCDL.InicialLoja;
import java.util.ArrayList;
import java.util.List;

public class Consulta extends javax.swing.JFrame {
private LocadoraTable model;
private final int ultimoCod;

  public Consulta() {
    initComponents();
    ultimoCod =1;
    
    List<InicialLoja> livros = new ArrayList<InicialLoja>();
    

    //cria o modelo de Produto
    model = new LocadoraTable(livros);

    //atribui o modelo à tabela
    jTable1.setModel(model);
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jScrollPane1 = new javax.swing.JScrollPane();
    jTable1 = new javax.swing.JTable();
    bt_onome = new javax.swing.JButton();
    bt_ogenero = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jTable1.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null}
        },
        new String [] {
            "Title 1", "Title 2", "Title 3", "Title 4"
        }
    ));
    jScrollPane1.setViewportView(jTable1);

    bt_onome.setText("Ordenar por Nome");
    bt_onome.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            bt_onomeActionPerformed(evt);
        }
    });

    bt_ogenero.setText("Ordenar por genero");
    bt_ogenero.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            bt_ogeneroActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING)
        .addGroup(layout.createSequentialGroup()
            .addGap(65, 65, 65)
            .addComponent(bt_onome)
            .addGap(93, 93, 93)
            .addComponent(bt_ogenero)
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 233, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(18, 18, 18)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(bt_onome)
                .addComponent(bt_ogenero))
            .addGap(0, 26, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>                        

private void bt_onomeActionPerformed(java.awt.event.ActionEvent evt) {                                         
    model.ordenarPorNome();
}                                        

private void bt_ogeneroActionPerformed(java.awt.event.ActionEvent evt) {                                           
    model.ordenarPorGenero();
}                                          

public static void main(String args[]) {
  
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Consulta().setVisible(true);
        }
    });
}
// Variables declaration - do not modify                     
private javax.swing.JButton bt_ogenero;
private javax.swing.JButton bt_onome;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration                   

}

Qual livro/apostila/tutorial está usando?

Usei Tutorial ,mas não consigo modificar para exibir do BD, só estar exibido o recebido!(construtor)!
http://www.javasimples.com.br/swing-awt/death-to-defaulttablemodel-abstracttablemodel-rulez

Muito dificil![color=darkblue] [/color][size=24] [/size]

Cadê sua classe com os métodos de consulta ao banco de dados?

Por que sua classe de livros chama “InicialLoja”?

Obrigado por tentar me ajudar!
è o seguinte eu estou tentando criar um Jtable que receba e ordene os dados que irá receber do BD, e então vir sobre AbstractTable,achei interessante e tentei fazer.
Eu criei um classe InicialLoja com a variaveis, uma classe Consulta JFrame e depois criei LocadoraTable ,AbstractTableModel!

Pelo jeito fiz do jeito incorreto ou incompreensível!

vou recomeçar de novo, eu me confundo muito com os models,Dao etc!
Procurei um exemplo completo mas não achei ainda!

[size=18]Obrigado[/size]

Nem pense em colocar o código de consulta no DB na sua TableModel, um DAO que é responsavel por fazer isso e retornar uma lista (no seu caso List) e o TableModel deve usar a lista para exibir os dados.

Estou tentando refazer, achei melhor, mas isso é difícil pra caramba!

http://www.guj.com.br/java/304530-tentando-criar-uma-abstract-table-mas-algo-esta-errado-oq#1619171

irei excluir esse topico!