私は現在、レストラン向けのアプリケーションを開発中です。私が現在取り組んでいるコードのコンセプトは、コンボボックスから名前を取得し、作業している人の従業員番号を使ってレシートをデータベースに挿入することです。私はそれをやろうとしているコードwhithは次のとおりです。複数のSQLを実行している結果セットの開始前
RestaurantOrder sqlRestaurantOrder = new RestaurantOrder();
ActionListener printReceiptListner;
printReceiptListner = (ActionEvent) -> {
int ID = Integer.parseInt(input1.getText());
try {
SystemManager manager = new SystemManager();
ResultSet rs = manager.stmt.executeQuery(sqlRestaurantOrder.setIdSql(ID));
while (rs.next()) {
double totalPrice = rs.getDouble("sumprice");
if (ID > 0) {
Receipt receiptSql = new Receipt();
String firstName = (String) cb.getSelectedItem();
String checkoutDate = new SimpleDateFormat("yyyyMMdd").format(Calendar.getInstance().getTime());
ResultSet rs2 = manager.stmt.executeQuery(receiptSql.getEmployeeId(firstName));
int employeeId = rs2.getInt("id");
while (rs2.next()) {
Receipt receiptSql2 = new Receipt();
ResultSet rs3 = manager.stmt.executeQuery(receiptSql2.SetStatusReceipt(employeeId, checkoutDate, ID, totalPrice));
while (rs3.next()) {
}
}
}
}
} catch (SQLException k) {
JOptionPane.showMessageDialog(null, k.getMessage());
}
};
文は、次のとおりです。私はエラーを取得しています
public class Receipt {
public String sql;
public String sql2;
public String getEmployeeId(String firstName){
return sql2 = "SELECT id FROM employee WHERE firstName = '" + firstName + "';";
}
public String SetStatusReceipt(int employeeId, String checkoutDate, int id, double totalPrice){
return sql = "INSERT INTO `receipt` (`employeeId`, `price`, `restaurantOrderId`, `checkoutDate`) VALUES (" + employeeId + " , " + totalPrice + ", " + id + ", " + checkoutDate + ");";
};
}
それはしかし、何を意味するのか、私が見上げた結果セットの開始前に、私はそれを現時点で修正することはできません。ヘルプは高く評価されます。
私はより多くの重要なコードをポストするのを忘れた場合は私はあなたがそのResultSet
のフィールドにアクセスすることができます前ResultSet.next()
を呼び出す必要があり、それを
表示されているエラーのスタックトレースを投稿してください。 – Asaph
ちょうど提案、コンボボックスを取得し、領収書を設定するために別々の呼び出しを行う方が良い場合は、例外を処理するのがずっときれいで簡単です。 – sash