Я реализую программу на основе меню, в которой пользователь может искать книги по различным параметрам, таким как: ISBN, название и т. Д. Проблема, с которой я сталкиваюсь, заключается в том, что, если пользователь выбирает один и тот же параметр дважды, он возвращает тот же продавец и цена от предыдущего запуска.
Например, если пользователь выбирает вариант 1 и вводит isbn 18937646282. Предполагается, что будет возвращено следующее: seller: adrake Price: 20.56
. Затем пользователь снова выбирает вариант 1 и вводит isbn: 87473626262. Предполагается, что будет возвращено следующее: продавец: aharrison Price 10:20
. Тем не менее, он возвращает то же самое, что и первый запуск: seller: adrake Price: 20.56
.
Программа работает правильно, если я выйду из программы и перезапущу всю программу. Кроме того, я распечатал isbn, и он извлекает правильный isbn, автора, название для каждого прогона. Это просто не восстановить правильный продавец и цену. Любая помощь или понимание будет принята с благодарностью. Код ниже показывает option1 ():
List<BookSale> booklist = new ArrayList<>();
public void option1() throws SQLException, IOException
{
String sql;
String sql_;
String sql_info;
int option;
int i;
int count = 0;
// asks user to enter ISBN
System.out.print("Enter ISBN of the book you are searching for: ");
isbn = stdin.next();
//sql statement to select seller and price for user desired ISBN
sql_ = "SELECT *" + " from BOOK_SALE " + "WHERE isbn = " +
"'" + isbn + "'" + "and status =" + "'active'";
// execute query
result2 = select.executeQuery(sql_);
// display Seller and Price of the desired ISBN, add book to ArrayList
while(result2.next())
{
BookSale book = new BookSale(listing_no, seller,isbn, condition,price);
book.setListingNumber(result2.getInt(1));
book.setSeller(result2.getString(2));
book.setISBN(result2.getString(3));
book.setCondition(result2.getString(4));
book.setPrice(result2.getDouble(5));
booklist.add(book);
count++;
} // while
for (i = 0; i < count; i++) //0
{
// display number of the selections
System.out.println(i + " " + booklist.get(i));
}// for
Функция распечатать продавца и цену в классе:
@Override
public String toString(){
return ". Seller:" + seller + " Price: $" + price;
}