bem, como eu disse eu prefiro a opção de dar um insert nos campos e depois exibi-los na jtable, mas se de tudo vc naum pensa assim, vou te mandar um exemplo de como fazer para inserir na JTable e depois gravar.
public void addProdutoTabela() throws SQLException{
//metodo q adiciona produtos na JTable
double qtd = Double.valueOf(quantidade.getText().replaceAll("\\.", "").replace(",","."));
if(codigoProduto.getText().equals("") || qtd <= 0){
JOptionPane.showMessageDialog(null, "Informe o código e a quantidade do produto que deseja adicionar.");
codigoProduto.requestFocus();
}else{
int codP = Integer.valueOf(codigoProduto.getText());
//aqui eu adiciono os valores dos JTextFields a JTable
DefaultTableModel tabela = (DefaultTableModel)tabelaCompras.getModel();
tabela.addRow(new Object[]{
codigoProduto.getText(),
produto.getText(),
codTProduto.getText(),
tipoProduto.getText(),
valorUnitario.getText(),
quantidade.getText(),
total.getText(),
});
}
}
//metodo q grava os valores da JTable
PreparedStatement stm = con.prepareStatement("INSERT INTO caixa (codcontrole, datafechamento, datamovimento, "
+ " horaentrada, horafechamento, codigoproduto, codigotproduto, valorunitario, quantidade, totalcompra,"
+ " porcentogarcom, comissaogarcom, divideconta, valorcover, valordesconto, totalbruto, totalliquido,"
+ " valorporpessoa, valorpago, valortroco, tipomovimento, horacompra, codcaixa, codcliente, tipovenda, codusuario) "
+ " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
stm.setInt(1, codControle);
stm.setDate(2, java.sql.Date.valueOf(new Data().formataDataBD()));
stm.setDate(3, java.sql.Date.valueOf(new Data().formataDataBD()));
stm.setTime(4, Time.valueOf(new ControlaMesas().retornaHoraAtual()));
stm.setTime(5, Time.valueOf(new ControlaMesas().retornaHoraAtual()));
stm.setDouble(15, Double.valueOf(valorDesconto.getText().replaceAll("\\.","").replace(",",".")));
stm.setDouble(16, Double.valueOf(valorBruto.getText().replaceAll("\\.","").replace(",",".")));
stm.setDouble(17, Double.valueOf(valorLiquido.getText().replaceAll("\\.","").replace(",",".")));
stm.setDouble(19, Double.valueOf(valorPago.getText().replaceAll("\\.","").replace(",",".")));
stm.setDouble(20, Double.valueOf(valorTroco.getText().replaceAll("\\.","").replace(",",".")));
stm.setString(21, "BALCÃO");
stm.setInt(23, new ControlaCaixa().retornaCodigoCaixa()); //codigo do caixa
stm.setInt(24, Integer.parseInt(codCliente.getText()));
stm.setString(25, tipoVenda.getSelectedItem().toString());
stm.setInt(26, new ControlaLoginSistema().getCodigoUsuario());
//valores nulos
stm.setDouble(11, Double.valueOf(0));
stm.setInt(12, Integer.valueOf(0));
stm.setDouble(13, Double.valueOf(0));
stm.setDouble(14, Double.valueOf(0));
stm.setDouble(18, Double.valueOf(0));
//---------
String codProduto = ""; // codigo produto 0
int codP = 0;
String codTProduto = ""; // codigo t produto 2
int codTP = 0;
String valorU = ""; // valor unitario 4
double valorUnit = 0;
String qtd = ""; // quantidade 5
double qtde = 0;
String valorT = ""; // valor 6
double valorTotal = 0;
//esse for é o q pega os valores da JTable para Inserir
for(int x = 0; x < tabelaCompras.getRowCount();x++){
codProduto = String.valueOf(tabelaCompras.getValueAt(x, 0));
codP = Integer.parseInt(codProduto);
stm.setInt(6, codP);
codTProduto = String.valueOf(tabelaCompras.getValueAt(x, 2));
codTP = Integer.parseInt(codTProduto);
stm.setInt(7, codTP);
valorU = String.valueOf(tabelaCompras.getValueAt(x, 4));
valorUnit = Double.parseDouble(valorU.replaceAll("\\.","").replace(",","."));
stm.setDouble(8, valorUnit);
qtd = String.valueOf(tabelaCompras.getValueAt(x, 5));
qtde = Double.parseDouble(qtd.replaceAll("\\.","").replace(",","."));
stm.setDouble(9, qtde);
valorT = String.valueOf(tabelaCompras.getValueAt(x, 6));
valorTotal = Double.parseDouble(valorT.replaceAll("\\.","").replace(",","."));
stm.setDouble(10, valorTotal);
stm.setTime(22, Time.valueOf((String)tabelaCompras.getValueAt(x, 7)));
stm.execute();
}
Como falei, é bem mais trabalhoso e mais suscetível a erros, eu acredito q naum compensa usar essa maneira…Esse exemplo, é um q fiz qdo estava começando na época mexia com gravar tudo da JTable hoje prefiro Inserir e depois dar um Select.
t+ e boa sorte ae.