Bom dia pessoal!
Estou tentando salvar algumas colunas de uma jtable, mas está dando erros. Alguém pode me dizer oq está acontecendo com meu código?
Segue abaixo o código:
try {
Class.forName(driver);
Connection con = DriverManager.getConnection(url, user, pass);
for (int i = 0; i < CadresultadoTabela.getRowCount(); i++) {
String Operação = (CadresultadoTabela.getValueAt(i, 12).toString());
String Equipamento = (CadresultadoTabela.getValueAt(i, 13).toString());
String Desc_Teste = (CadresultadoTabela.getValueAt(i, 14).toString());
String sql = “INSERT INTO Teste (OPERACAO,EQUIPAMENTO,”
+ “DTESTE) VALUES (” + Operação + “,” + Equipamento + “,” + Desc_Teste + “)”;
PreparedStatement pst = con.prepareStatement(sql);
pst.executeUpdate();
JOptionPane.showConfirmDialog(this, “Deseja Salvar?”);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(this, e.getMessage());
}
4mega
Junho 6, 2017, 10:38am
#2
Mostre os erros, ué. Esqueci minha Mind Stone em casa.
Rafael16:
try {
Class.forName(driver);
Connection con = DriverManager.getConnection(url, user, pass);
for (int i = 0; i < CadresultadoTabela.getRowCount(); i++) {
String Operação = (CadresultadoTabela.getValueAt(i, 12).toString());
String Equipamento = (CadresultadoTabela.getValueAt(i, 13).toString());
String Desc_Teste = (CadresultadoTabela.getValueAt(i, 14).toString());
String sql = “INSERT INTO Teste (OPERACAO,EQUIPAMENTO,”
+ “DTESTE) VALUES (” + Operação + “,” + Equipamento + “,” + Desc_Teste + “)”;
PreparedStatement pst = con.prepareStatement(sql);
pst.executeUpdate();
JOptionPane.showConfirmDialog(this, “Deseja Salvar?”);undefined> }
} catch (Exception e) {
JOptionPane.showMessageDialog(this, e.getMessage());
}
Diz ter erro : Incorrect syntax near ‘e’. Mas não tem erro de syntax.
Está concatenando os valores diretamente na String da SQL sem usar aspas simples. Printa essa sql antes de executar q vc vai ver o problema.
*Dica: nunca concatene valores na sql, use parâmetros. E use o PreparedStatement de maneira correta.
Olá Pessoal,
To com um grande problema li uma vez aqui que era melhor trabalhar com PreparedStatement, e comecei a estudar só que tem hora que funciona e tem hora que não funciona, será que alguém poderia me dar um exemplo usando preparedStatement ou mesmo me indicar algum tutorial, eu já li no Deitel e lá não encontrei nada, a baixo eu motro um exemplo de um método que eu crieie
private void insereDadosGeral(Medidas medidas, Amostra amostra, String sql){ try{ PreparedSta…
> try {
> Class.forName(driver);
> Connection con = DriverManager.getConnection(url, user, pass);
> for (int i = 0; i < CadresultadoTabela.getRowCount(); i++) {
> String Operação = (String) CadresultadoTabela.getValueAt(i, 12).toString();
> String Equipamento = (String) CadresultadoTabela.getValueAt(i, 13).toString();
> String Desc_Teste = (String) CadresultadoTabela.getValueAt(i, 14).toString();
> String sql = "INSERT INTO Teste (OPERACAO,EQUIPAMENTO,DTESTE) VALUES (?,?,?)";
> PreparedStatement pst = con.prepareStatement(sql);
> pst.setString(1, Operação);
> pst.setString(2, Equipamento);
> pst.setString(3, Desc_Teste);
> pst.executeUpdate();
> JOptionPane.showConfirmDialog(this, "Deseja Salvar?");
> }
> } catch (Exception e) {
> JOptionPane.showMessageDialog(this, e.getMessage());
> }
Fiz dessa maneira e mesmo assim não deu Rodrigo. Poderia me dar alguma dica?
ele não da erro. simplesmente fala que está salvando, mas não salva nada.
Então seu problema é outro, debuga pra ver se está entrando neste laço pra executa essa sql.
E o id é autoincremento?
Pq vc tem aquele showConfirmDialog se vc nem lê a resposta do usuário?
1 curtida
Fiz e ele entra normalmente, mas não tenho um id. Pode ser isso então.
Mas como eu entraria com um id ali?
Aquele show eu coloquei só pra testar.
Rodrigo, consegui resolver. era o ID mesmo q estava faltando. não precisava nem de colocar ele, só de ter ele na tabela já deu certo. muito obrigado pela dica, sem ela não iria resolver