Como colocar os dados de uma Jtable de uma app java em uma tabela no banco de dados?

Eu tenho uma app que faz a consuta no banco de dados e imrpimi os registros dentro de um jtable,
o que estou tentando fazer é colocar esses registros da jtable dentro de uma
tabela no banco de dados que foi criada para receber esses dados, para isso
criei tres classes e fiz as ligacões mas naum esta dando certo
essas são as classes:

[code]package spc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

public class EnviaBanco {
private String drive, url, usarname, password;
private Connection con;

public static List listacliente;

public EnviaBanco(){
	try{
		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
        String url = "endereco do banco";
        this.con = DriverManager.getConnection (url, "usuario", "senha");
        Statement st = con.createStatement();

        System.out.println("Conectado");

    	  for(int i =0; i<listacliente.size();i++){
    		  Pessoa p = (Pessoa) listacliente.get(i);
    		  String query = "insert into SAMEA_SPC(spc_nome_cliente,spc_endereco_cliente, spc_cpf, spc_cgc, spc_bairro, spc_cep, spc_telefone, spc_valor_debito, spc_cod_programa, spc_num_ligacao)" + "values ("+ PrincipalSamea_spc.model.getColumnName(0)+","+ PrincipalSamea_spc.model.getColumnName(1)+","+PrincipalSamea_spc.model.getColumnName(2)+","+PrincipalSamea_spc.model.getColumnName(3)+","+PrincipalSamea_spc.model.getColumnName(4)+","+PrincipalSamea_spc.model.getColumnName(5)+","+PrincipalSamea_spc.model.getColumnName(6)+")";
    	  }
	}catch(SQLException e1){
        System.out.println("Erro ao conectar ao banco");
        e1.printStackTrace();

		}finally{ // Finalizando a conexão
        System.out.println("Encerrando a conexão");

}
}

}
[/code]

[code]package spc;
import javax.swing.table.DefaultTableModel;

public class Samea_spc{
private String cliente_nome, cliente_endereco, cliente_cpf, cliente_cgc, cliente_bairro, cliente_cep, cliente_telefone, cliente_id, cliente_valorDebito, cliente_codigoPrograma, cliente_numeroLigacao;
public Object getCpf;

public Samea_spc () {}


public void setNome_cliente (String cliente_nome) {
    this.cliente_nome = cliente_nome;
}

public void setCliente_endereco (String cliente_endereco) {
   this.cliente_endereco = cliente_endereco;
}

public void setCliente_cpf(String cliente_cpf) {
this.cliente_cpf = cliente_cpf;
}

public void setCliente_cgc(String cliente_cgc) {
this.cliente_cgc = cliente_cgc;
}

public void setCliente_bairro(String cliente_bairro) {
this.cliente_bairro = cliente_bairro;
}

public void setCliente_cep(String cliente_cep) {
this.cliente_cep = cliente_cep;
}

public void setCliente_telefone (String cliente_telefone) {
this.cliente_telefone = cliente_telefone;
}

public void setCliente_id(String cliente_id) {
this.cliente_id = cliente_id;
}

public void setCliente_valorDebito(String cliente_valorDebito) {
this.cliente_valorDebito = cliente_valorDebito;
}

  public void setCliente_codigoPrograma (String cliente_codigoPrograma) {
      this.cliente_codigoPrograma = cliente_codigoPrograma;
}
  public void setCliente_numeroLigacao (String cliente_numeroLigacao) {
      this.cliente_numeroLigacao = cliente_numeroLigacao;
}

public String getCliente_nome() {
return cliente_nome;
}

public String getCliente_endereco () {
return cliente_endereco;

}

public String getCliente_cpf() {
return cliente_cpf;
}

public String getCliente_cgc() {
return cliente_cgc;
}

public String getCliente_bairro() {
return cliente_bairro;
}

public String getCliente_cep() {
return cliente_cep;
}

public String getCliente_telefone () {
return cliente_telefone;

}

public String getCliente_id() {
return cliente_id;
}

public String getCliente_valorDebito() {
return cliente_valorDebito;
}

public String getCliente_codigoPrograma () {
return cliente_codigoPrograma;

}

public String getCliente_numeroLigacao() {
return cliente_numeroLigacao;
}

}

[/code]

[code]package spc;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;

import java.awt.Adjustable;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class PrincipalSamea_spc extends JFrame implements ActionListener
{
public static JLabel L1, L2;
private JLabel L3, L4, L5;
private JTextField Txt1, Txt2;
public static JTextField Txt4, Txt3;
public static JTextArea TxtArquivo;
private JFileChooser Arquivo;
private JButton CmdConsultar, CmdGerar, CmdSair, CmdC, CmdEnvia;
public static JTable table;
public static DefaultTableModel model;
private JScrollPane js;
public static GridLayout grade;

private void setCenter(JFrame frame)
{
    Dimension paneSize = frame.getSize();
    Dimension screenSize = frame.getToolkit().getScreenSize();
    frame.setLocation((screenSize.width - paneSize.width) / 2, (screenSize.height - paneSize.height) / 2);
}

public PrincipalSamea_spc()
{
	try{
        UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
        SwingUtilities.updateComponentTreeUI(this);
       }catch(Exception erro) {
          JOptionPane.showMessageDialog(null,erro);
       }


    setSize(768, 570);
    setResizable(false);
    setTitle("Envio de dados");
    setCenter(this);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container cp = getContentPane();
    cp.setLayout(null);
   // ((JComponent) cp).setBorder(new FundoSistema());

    model = new DefaultTableModel();
    model.addTableModelListener(table);
    model.addColumn("Nome do cliente");
    model.addColumn("Endereço do cliente");
    model.addColumn("CPF");
    model.addColumn("CGC");
    model.addColumn("Bairro");
    model.addColumn("CEP");
    model.addColumn("Telefone");
    model.addColumn("Data do vencimento");
    model.addColumn("Data da compra");
    model.addColumn("Valor do Debito");
    model.addColumn("Codigo do programa");
    model.addColumn("Numero da ligação");


    L5 = new JLabel(" Dados dos Clientes");
    L5.setFont(new Font("Dialog", Font.BOLD, 12));//definidndo a fonte
    js = new JScrollPane(L5);
    js.setBounds(30, 60, 115, 21);
    js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    cp.add(js);

    table = new JTable();
    table.setModel(model);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    table.setAutoscrolls(true);

    int rows = 3;
    int cols = 3;
    JTable tabela = new JTable (rows, cols);

    // Desativar auto redimensionamento
    table.setAutoResizeMode (JTable.AUTO_RESIZE_OFF);

    // Setando a largura das colunas

    int vColIndex = 0;//nome do cliente
    TableColumn col = table.getColumnModel (). getColumn (vColIndex);
    col.setPreferredWidth (250);

    int vColIndex1 = 1;//endereco
    TableColumn col1 = table.getColumnModel (). getColumn (vColIndex1);
    col1.setPreferredWidth (300);

    int vColIndex2 = 2;//cpf
    TableColumn col2 = table.getColumnModel (). getColumn (vColIndex2);
    col2.setPreferredWidth (80);

    int vColIndex3 = 3;//cgc
    TableColumn col3 = table.getColumnModel (). getColumn (vColIndex3);
    col3.setPreferredWidth (100);

    int vColIndex4 = 4;//coluna de nome do bairro
    TableColumn col4 = table.getColumnModel (). getColumn (vColIndex4);
    col4.setPreferredWidth (200);

    int vColIndex5 = 5;//cep
    TableColumn col5 = table.getColumnModel (). getColumn (vColIndex5);
    col5.setPreferredWidth (70);

    int vColIndex6 = 6;//telefone
    TableColumn col6 = table.getColumnModel (). getColumn (vColIndex6);
    col6.setPreferredWidth (70);



    js = new JScrollPane(table); //tabela
    js.setBounds(30, 80, 700, 400);
    cp.add(js);
    Arquivo = new JFileChooser(".");

    L1 = new JLabel(" NSA");
    L1.setFont(new Font("Dialog", Font.BOLD, 12));//defindo a fonte
    js = new JScrollPane(L1);
    js.setBounds(30, 20, 33, 25);
    js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    cp.add(js);

    Txt2 = new JTextField();//referente ao NSA
    Txt2.addActionListener(this);
    js = new JScrollPane(Txt2);
    js.setBounds(70, 20, 150, 25);
    js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    cp.add(js);

    L2 = new JLabel(" Caminho dos dados");
    L2.setFont(new Font("Dialog", Font.BOLD, 12));//defindo a fonte
    js = new JScrollPane(L2);
    js.setBounds(230, 20, 120, 25);
    js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    cp.add(js);

    Txt1 = new JTextField();//referente ao caminho de dados esse eh o textField que recebe o valor do fileChooser
    js = new JScrollPane(Txt1);
    Txt1.addActionListener(this);
    js.setBounds(355, 20, 250, 25);
    js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    js.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); // AQUI! Acrescentei essa linha para controlar o comportamento da barra horizontal de rolagem
    cp.add(js);

    CmdC = new JButton("...");
    CmdC.setBounds(610, 20, 25, 25);
    CmdC.addActionListener(this);
    cp.add(CmdC);

    CmdConsultar = new JButton("Consultar");
    CmdConsultar.setBounds(640, 20, 90, 25);
    CmdConsultar.addActionListener(this);
    cp.add(CmdConsultar);

    CmdEnvia = new JButton("SPC");
    CmdEnvia.setBounds(510, 500, 60, 25);
    CmdEnvia.addActionListener(this);
    cp.add(CmdEnvia);

    CmdGerar = new JButton("Gerar");
    CmdGerar.setBounds(580, 500, 70, 25);
    CmdGerar.addActionListener(this);
    cp.add(CmdGerar);

    L3 = new JLabel(" Total de Clientes");
    L3.setFont(new Font("Dialog", Font.BOLD, 12));//defindo a fonte
    js = new JScrollPane(L3);
    js.setBounds(30, 500, 105, 25);
    js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    cp.add(js);

    //para receber o resultado da soma de numero de clientes
    Txt3 = new JTextField();
    js = new JScrollPane(Txt3);
    js.setBounds(140, 500, 100, 25);
    js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    cp.add(js);

    L4 = new JLabel(" Total de Debitos");
    L4.setFont(new Font("Dialog", Font.BOLD, 12));//defindo a fonte
    js = new JScrollPane(L4);
    js.setBounds(290, 500, 100, 25);
    js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    cp.add(js);

    //para receber o valor total de debitos dos clientes
    Txt4 = new JTextField();
    js = new JScrollPane(Txt4);
    js.setBounds(400, 500, 100, 25);
    js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    cp.add(js);

    CmdSair = new JButton("Sair");
    CmdSair.setBounds(660, 500, 70, 25);
    CmdSair.addActionListener(this);
    cp.add(CmdSair);

    TxtArquivo = new JTextArea();//recebe os valores que seram impressos no txt
    TxtArquivo.setVisible(false);
    js = new JScrollPane(TxtArquivo);
    js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    cp.add(js);


}

public void actionPerformed(ActionEvent e)
{
	if (e.getSource() == CmdEnvia) {
		CmdEnvia = PrincipalPessoa.main(null);

    }

    if (e.getSource() == CmdConsultar) {
        CmdConsultar = InverteNovoRecebeBanco.main(null);
    }

    if (e.getSource() == CmdC) {
        JFileChooser chooser = new JFileChooser();
        chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        chooser.setLocation(0, 0);

        // Esta linha alinha o JFileChooser no centro
        int returnVal = chooser.showSaveDialog(this);
        // INICIO - ALTERACAO
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            Txt1.setText(chooser.getSelectedFile().getAbsolutePath());


        }
    // FIM - ALTERACAO
    }
    if (e.getSource() == CmdGerar) {
        // INICIO - ALTERACAO
        if (Txt1.getText().trim().equals("")) {
            JOptionPane.showMessageDialog(null, "Digite o local onde voce quer salvar o arquivo");
            return;
        }
        if (Txt2.getText().trim().equals("")) {
            JOptionPane.showMessageDialog(null, "Digite um nome para gerar o arquivo");
            return;
        } else {
        	String arq = Txt1.getText();
            if (!arq.endsWith(File.separator)) {
                arq += File.separator;
            }
            arq += Txt2.getText();
            try {
                salvar(arq, TxtArquivo.getText());
                JOptionPane.showMessageDialog(null, "Arquivo salvo com sucesso!");
            } catch (IOException ioe) {
                JOptionPane.showMessageDialog(null, "Não foi possível salvar arquivo!");
            }
        //  }
        // FIM - ALTERACAO
        }
    }
    if (e.getSource() == CmdSair) {
        this.dispose();
    }
}

public void salvar(String nomeArq, String conteudoArq) throws IOException
{
    // INICIO - ALTERACAO
    PrintWriter out = new PrintWriter(new FileWriter(nomeArq));
    out.print(conteudoArq);
    out.close();
    // FIM - ALTERACAO
}


public static void main(String args[])
{
	PrincipalSamea_spc app = new PrincipalSamea_spc();
    app.show();
}

}[/code]

A primeira classe é a classe que tem o insert para inserir os dados na tabela do banco de dados, a segunda classe é de get’s e set’s, e a terceira classe é a classe que eu executo a app, eu sei que esta muito grande o meu codigo mas isso eu arrumo depois alguem pode me dizer o que estou fazendo de errado?

Por favor me ajudem! :oops:

não vi onde você está instanciando sua classe “EnviaBanco”.
o método salvar está gravando os dados num arquivo texto.
no método salvar vc deve utilizar a classe responsável por gravar no banco.

vc ja verificou se sua classe que envia os dados para a JTable está armazenando os dados do banco corretamente?

Não sei se esta armazendo corretamente, não estou podendo executar o codigo por que esta rodando outra coisa na minha maquina e se eu rodar vai dar erro.

localiza o erro adicionando break points em seu codigo…pq só com o código ai ficar difícil de achar onde esteja o possível erro!!!

O que eu sugiro eh vc criar e executar o código aos poucos ou seja, criar uma classe de conexão com o banco…nesta mesma classe vc pode armazenar todos os dados resultantes do select dado no banco…roda a plicação e ve se os dados estão corretos e se não existe nenhum erro até então…depois cria uma classe recebe informações, onde vc vai passar como parâmetros os dados da classe de conexão com o banco…e por fim manda imprimi-los na tabela …acho que esta eh a forma mais simples de dispor informações do banco em um frame com tabela!

Samea…dando uma olhada por cima em seu código vi que tem uma coisa estranha…na query…qd vc manda dar o insert…vc tem que abrir as aspas e passar o parâmetro que deve ser inserido no banco…neste caso a variavel que vai receber o valor referente aquele campo da tabela!