2017-08-15 6 views
0

私は、SQLデータベースのテーブルにJTableのから行のデータを挿入しようとしているが、実行時にキーワード「トランザクション」付近にエラーのJTableから挿入し、複数の行

不適切な構文に直面しています。ここ

コード

try { 

    int rows = table.getRowCount(); 

    // con.setAutoCommit(false); 
    String query = "Insert into Transaction(transaction_code, transaction_date, item_code, item_name, quantity, item_price, total) values (?,?,?,?,?,?,?) ;"; 
    PreparedStatement pst = con.prepareStatement(query); 
    for (int row = 0; row < rows; row++) { 
     int t_code = (int) table.getValueAt(row, 0); 
     Timestamp t_date = (Timestamp) table.getValueAt(row, 1); 
     int i_code = (int) table.getValueAt(row, 2); 
     String i_name = (String) table.getValueAt(row, 3); 
     int quantity = (int) table.getValueAt(row, 4); 
     BigDecimal i_price = (BigDecimal) table.getValueAt(row, 5); 
     BigDecimal total = (BigDecimal) table.getValueAt(row, 6); 
     pst.setInt(1, t_code); 
     pst.setTimestamp(2, t_date); 
     pst.setInt(3, i_code); 
     pst.setString(4, i_name); 
     pst.setInt(5, quantity); 
     pst.setBigDecimal(6, i_price); 
     pst.setBigDecimal(7, total); 

     pst.addBatch(); 
    } 
    pst.executeBatch(); 
    pst.execute(query); 
    //con.commit(); 
} catch (Exception e1) { 
    e1.printStackTrace(); 

} 
+0

トランザクションは予約語です –

+0

"transaction"という単語は、ほとんどのSQLデータベースの予約語です。「Transaction」のように引用する必要があります。 –

+0

wwhat使用しているDBMS? –

答えて

0

TransactionはMySQLでkeyword多くの他のDBMSです。 tablenameとして使用したり、バッククォートでエスケープしたりしないでください。

関連する問題