Salvar dados do JTable no Banco e mostrar_dados do Banco em um JTable

Saudações Comunidade…

Estou a dias, noites, madrugadas, enfim a procura de uma solução para o seguinte…

Tenho uma tela com alguns JTextFiel’s, ao clicar em incluir os dados vão para a tabela. Ao clicar em “gravar” no Banco só a primeira linha do registro é salvo, aparece a mensagem “Gravação realizada com sucesso” e logo aparece outra mensagem “Erro ao tentar gravar registro” com.mysql.jdbc.exception.MySQLIntegrityConstraintViolationException: Duplicate entry ‘(numero do código)’ for key 1. Ressalto que, o registro foi gravado no banco, mas uma só linha da tabela.


for(int x=0;x<=jTable.getRowCount();){
	//Dados a serem salvos no banco
String sqlinsert = "INSERT INTO entvenda (numero, data, table0_descricao, table1_precounitario, table2_quantidade, table3_subtotal, desconto, comissao, formapagamento, valortotal) VALUES " +
				"('" + 
						
				jt_NumVenda.getText() + "','" +
				jt_Dt.getText() + "','" +
 
				jTable.getValueAt(x,0)+"','" +
				jTable.getValueAt(x,1)+"','" +
				jTable.getValueAt(x,2)+"','" +
				jTable.getValueAt(x,3)+"','" +
											
				jt_Comissao.getText() + "','" +
				jt_Desconto.getText() + "','" +
				jc_FormaPgt.getSelectedItem() + "','" +
				jt_ValorTotal.getText() + "')";
									
				
				con_NovaVenda.statement.executeUpdate(sqlinsert);
									
					JOptionPane.showMessageDialog(null, "Gravação realizada com sucesso!!!");
								
				
				con_NovaVenda.resultset = con_NovaVenda.statement.executeQuery ("SELECT * FROM entvenda");
				con_NovaVenda.resultset.last();
				mostrar_dados();
				}//fim for
				
				}catch (SQLException erro){
									
					JOptionPane.showMessageDialog(null, "Erro ao tentar gravar o registro\n" + erro);
						
				}									
			}
		  });
		}
		return jb_FecharVenda;
             }

Outra função é a de mostrar dados. Tenho um método para isso. e para mostrar dados do jTextField eu faço o seguinte:

jt_NumVenda.setText(con_NovaVenda.resultset.getString ("numero"));
jt_Dt.setText(con_NovaVenda.resultset.getString ("data"));

Como devo fazer para chamar os dados do JTable para o registro visualizado.

Desde já agradeço.

Você já ouviu falar em Hibernate ou JPA?
Sobre mostrar dados em uma JTable ou persistilos, dê uma olhada no projeto Towel, do Mark Vasconcelos aqui do Fórum.
Veja o link com a notícia:http://www.guj.com.br/java/242756-towel-release-12

[quote=joyle]Você já ouviu falar em Hibernate ou JPA?
Sobre mostrar dados em uma JTable ou persistilos, dê uma olhada no projeto Towel, do Mark Vasconcelos aqui do Fórum.
Veja o link com a notícia:http://www.guj.com.br/java/242756-towel-release-12[/quote]

Estou vendo sobre Hibernate, mas investindo tempo mesmo no desenvolvimento dessa aplicação (que não usa hibernate).

Não são opções não!? Dessa forma que estou fazendo não vou conseguir meu objetivo não?

Está é a minha primeira aplicação e gostaria de uma solução sem desviar o raciocínio. Só quero gravar mais de uma linha do JTable no banco e quando o usuário abrir a tela carregar o ultimo registro dos JtextFeil’s e do JTable.

Se não posso, através do que tenho, resolver meu problema, por favor me dê uma direção para a melhor solução.

Agradeço a atenção.

O erro é bem claro. Ele diz que você está tentando inserir dois numeros do código iguais, quando você inseriu uma regra no banco dizendo que somente um era possível.

Outra coisa. Se a dúvida fosse JTable, o fórum desse post seria o de Interface Gráfica. Como é do banco, é o de Persistência. O que esse post definitivamente não é, é java básico. Procure ler atentamente a descrição dos fóruns antes de postar.

[quote=Renato Yury][quote=joyle]Você já ouviu falar em Hibernate ou JPA?
Sobre mostrar dados em uma JTable ou persistilos, dê uma olhada no projeto Towel, do Mark Vasconcelos aqui do Fórum.
Veja o link com a notícia:http://www.guj.com.br/java/242756-towel-release-12[/quote]

Estou vendo sobre Hibernate, mas investindo tempo mesmo no desenvolvimento dessa aplicação (que não usa hibernate).

Não são opções não!? Dessa forma que estou fazendo não vou conseguir meu objetivo não?

Está é a minha primeira aplicação e gostaria de uma solução sem desviar o raciocínio. Só quero gravar mais de uma linha do JTable no banco e quando o usuário abrir a tela carregar o ultimo registro dos JtextFeil’s e do JTable.

Se não posso, através do que tenho, resolver meu problema, por favor me dê uma direção para a melhor solução.

Agradeço a atenção. [/quote]
Então, olha só, se você quer mesmo fazer isso sem o uso de um framework como Hibernate ou JPA, dê uma olhada sobre PreparedStatement em java. Juntamento com isso você terá que recuperar a sequencia da chave primária para que esse erro não ocorra, como o ViniGodoy já explicou.