私は食料品店に支払いデスクを構築しようとしていますが、コードは実際に意図したとおりに実行されますが、1 つだけです。
ユーザーに必要なアイテムの数を入力するように依頼した後、製品情報が収集され、正常に機能しますが、次の製品の製品 ID を入力するようにユーザーに要求することになっている場合、行が繰り返され、次のようになります。私のキャッチの例外:「空の結果セットに対する不正な操作」。繰り返しますが、その行の繰り返しを除いて、すべての計算とすべてが問題ありません。何が問題なのかについてのアイデアはありますか?
繰り返しの出力は次のようになります。
製品を入力 (または終了):
ERROR1: 空の結果セットに対する不正な操作です。
製品を入力 (または終了):
そして、これがコードです。
try {
Class.forName("com.mysql.jdbc.Driver");
String connection = "jdbc:mysql://myDB?";
connection = connection + "user=xxx&password=xxxxxx";
Connection conn = DriverManager.getConnection(connection);
// MATA IN PRODUKTNUMMER
System.out.println("\nEnter product (or Exit):");
GroceryStore.input = GroceryStore.scan.nextLine();
PreparedStatement stmt = conn.prepareStatement(
"SELECT * "+
"FROM Products "+
"WHERE productNo = ?");
stmt.setString(1, GroceryStore.input);
ResultSet rs = stmt.executeQuery();
rs.next();
pName = rs.getString("productName");
System.out.println("Product: " + pName);
// MATA IN ANTAL
System.out.println("\nEnter amount:");
GroceryStore.amount = GroceryStore.scan.nextInt();
pPrice = rs.getDouble("productPrice");
priceRounded = new BigDecimal(pPrice).setScale(2, BigDecimal.ROUND_FLOOR);
amountRounded = new BigDecimal(GroceryStore.amount).setScale(0);
priceRounded = priceRounded.multiply(amountRounded);
GroceryStore.sum = GroceryStore.sum.add(priceRounded);
inOut.output();
inOut.input();
conn.close();
}
catch (Exception e) {
System.out.println("ERROR1: " + e.getMessage());
}