2

ダイアログ ボックスからデータベースに orderId (自動インクリメント) とテーブル番号を挿入しようとしていますが、MySql データベースを参照すると、orderId もテーブル番号も保存されません。何が問題なのですか?注文テーブルには属性があります: orderId、tableNum、numofGuests、itemIdFK、empIdFK。

 private void orderButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
    // TODO add your handling code here: 
  try {
      //Dialog box asking for the table number 
String tableNumString =  JOptionPane.showInputDialog(null,"What is the table number?",
      "Your Password",JOptionPane.QUESTION_MESSAGE);

    int tableNum = Integer.parseInt(tableNumString);
    System.out.println(tableNum);
    String query = "Insert into orders(orderId,tableNum) values(?,?)";

        int order = 1;

        ps = connection.prepareStatement(query);

        ps.setInt(1, order);
        ps.setInt(2, tableNum);

        //switch to the next page after table number is inserted 
         CardLayout cl = (CardLayout)(mainpanel.getLayout());
      cl.show(mainpanel,"card3");
    } catch (SQLException | NumberFormatException ex) {}
}                                           

マイ ダイアログ ボックス

4

2 に答える 2

3

コードで実際に更新を実行することはありません。これを呼び出す必要があります:

ps.executeUpdate();

プリペアド ステートメントの良い例がここにあります。

于 2013-04-24T23:39:16.153 に答える
1

orderId列を自動インクリメントするように定義した場合、sqlクエリは次のようになります。

String query = "Insert into orders(tableNum) values(?)";

また、tableNum 値のみを設定する必要があります。

ps.setInt(1, tableNum);

于 2013-04-24T23:38:41.260 に答える