Pegando dados da jTable e gravar eles em uma tabela no banco de dados

Ola a todos, tenho uma jtable, as seguintes colunas (Mesa - Pedido - Quantidade - ValorUnidade )
preciso pegar estes dados corresponderes a estas colunas, e gravar no banco de dados. como posso fazer isso. estou tentando mais n estou conseguindo.
não esta dando erro, mas n esta funcionando… se n funciona esta errado !

esta salvando no banco apenas os valores
Mesa: -1
Pedido: -1
Quantidade: -1
ValorUnidade: -1
segue o código:

private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {                                      
        // Prenchendo dados da tabela no banco de dados
        Statement stm = new Conexao().getStatement();
      
        for(int i=0; i<jTable1.getRowCount(); i++){
         
            int mesa = jTable1.getSelectedColumn();
            int pedido = jTable1.getSelectedColumn();
            int quantidade = jTable1.getSelectedColumn();
            int valorUnidade = jTable1.getSelectedColumn();
            String sql = "INSERT INTO  pedidosfeitos (mesa,pedido,quantidade,valorUnidade) VALUES ("+mesa+","+pedido+","+quantidade+","+valorUnidade+")";
            new   Conexao().executaInsert(sql);
            
          System.out.println("Mesa: " +mesa + "\n" + "Pedido:" +pedido + "\n" + "Quantidade: "+quantidade+ "\n" + "Valor Unidade: "+valorUnidade);  
        }   
        
    } 

http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html

o getSelectedColumn() retorna um int que é a coluna selecionada e não o que contem nela,

acho que o que voce quer seria algo assim:

int linha = jTable.getSelectedRow(); String a = (String) jTable.getValueAt(linha, 0);

o

getSelectedRow() 

retorna um int com a posição da linha selecionada,

getValueAt(int row, int column)

retorna o valor que esta na row (linha) na column (coluna)

N conseguir entender, mas meu código esta certo?
o for?

o INSERT INTO?

Então como o nosso colega gejava explicou:

Você não deve usar o getSelectedColumn() caso você precise pegar a informação das celulas da sua tabela, o getSelectedColumn() pega a coluna da celula selecionada.

Para pegar o valor da celula você deve usar o getValueAt([linha], [coluna]),

No seu caso, eu acho que você deveria fazer algo assim:

int mesa = Integer.parseInt(jTable1.getValueAt(i, 0).toString); int pedido = Integer.parseInt(jTable1.getValueAt(i, 1).toString); int quantidade = Integer.parseInt(jTable1.getValueAt(i, 2).toString); int valorUnidade = Integer.parseInt(jTable1.getValueAt(i, 3).toString);

Só supondo que as colunas sejam sequenciais e que comecem pela “mesa”

eu vou colocar o getValueAt([linha], [coluna]),

aqui for(int i=0; i<jTable1.getRowCount(); i++){

??

ai ficaria assim o meu for for(int i=0; i<jTable1.getSelectedColumn([linha ],[coluna]); i++){

eu fiz assim, e deu errado olha

private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {                                      
        // Prenchendo dados da tabela no banco de dados
        Statement stm = new Conexao().getStatement();
      
        
        for(int i=0; i<jTable1.getRowCount(); i++){
            
           
         
            int mesa = Integer.parseInt(jTable1.getValueAt(i, 0).toString());
            int pedido = Integer.parseInt(jTable1.getValueAt(i, 1).toString());
            int quantidade = Integer.parseInt(jTable1.getValueAt(i, 2).toString());
            int valorUnidade = Integer.parseInt(jTable1.getValueAt(i, 4).toString());
            
            String sql = "INSERT INTO  pedidosfeitos (mesa,pedido,quantidade,valorUnidade) VALUES ("+mesa+","+pedido+","+quantidade+","+valorUnidade+")";
            new   Conexao().executaInsert(sql);
            
          System.out.println("Mesa: " +mesa + "\n" + "Pedido:" +pedido + "\n" + "Quantidade: "+quantidade+ "\n" + "Valor Unidade: "+valorUnidade);  
        }   
    }

deu este erro
( Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “Misto” )

Provavelmente alguma das suas variaveis da tabela não são números, verifique se todos os valores são números inteiros, se não forem mude o código para:

String SuaVariavel = jTable1.getValueAt(i, SuaColuna).toString);