Я пытаюсь создать экран, на котором будет отображаться история покупок у конкретного клиента. В моей таблице «Sales» содержатся столбцы «TicketNumber», «CustomerID», «InventoryNo», «Description», «Cost», «Retail», «IndividualSubTotal», «IndividualTax», «IndividualTotal», «SaleSubTotal», «SaleTax», , и "SaleTotal".Можно ли использовать SELECT * FROM table_name WHERE column_name = 'value', где 'value' может отображаться более чем в одной строке?
Для этого экрана мне понадобятся (пока) «TicketNumber», «CustomerID», «InventoryNo», «Retail», «IndividualTax» и «IndividualTotal».
Прямо сейчас, я пытаюсь вытащить информацию по идентификатору клиента. Моя конечная цель - разместить номер билета в таблице, но я хочу, чтобы он появился только один раз. Я думаю, что смогу это понять. Но сейчас это проблема, которую я испытываю.
try {
Class.forName("org.h2.Driver");
Connection connection = DriverManager.getConnection("jdbc:h2:./RetailApplicationDatabase;AUTO_SERVER=TRUE");
String sql;
Statement stmt;
sql = "SELECT distinct TicketNumber FROM Sales WHERE CustomerID = '" + CustomerNoNumberLabel.getText() + "';";
stmt = connection.createStatement();
ResultSet results = stmt.executeQuery(sql);
DefaultTableModel model = (DefaultTableModel) TicketNumberTable.getModel();
String TicketNumber;
while(results.next()) {
TicketNumber = results.getString("TicketNumber");
model.insertRow(TicketNumberTable.getRowCount(), new Object[] {TicketNumber});
}
} catch (SQLException | ClassNotFoundException ex) {
Logger.getLogger(ViewHistoryDialog.class.getName()).log(Level.SEVERE, null, ex);
}
Как вы можете видеть, в то время как есть больше результатов, я хочу продолжить вставку строки в таблицу. CustomerID будет отображаться в количестве разных номеров предметов и билетов, которые есть у клиента.
Когда я скомпилирую программу, я не получаю ошибок в выходном журнале, но я не вижу ничего, что помещается в таблицу. Я думал, что это может быть порядок, в котором я пытался что-то сделать, поэтому на данный момент у меня есть кнопка в этом диалоговом окне, в которой говорится «Загрузка», и когда это нажата, выполняется код выше.
Где моя проблема? Почему я не вижу ничего добавленного в таблицу?
Благодарим вас за любые полезные ответы.
EDIT (01/28/2015 - 8:03 AM MST): продажа уже добавлена в таблицу «Продажи» в базе данных. Предположим, что клиент купил инвентарные номера 1, 2 и 3, и они являются первым клиентом, совершившим покупку, поэтому номер билета: 1. Три таблицы добавляются в таблицу «Продажи», для каждого инвентарного номера и Столбец TicketNumber будет иметь значение «1» во всех трех строках. Затем я пытаюсь извлечь эту информацию и отобразить ее в jTable. Я хочу отобразить номера билетов в jTable TicketNumberTable. Но мой ResultSet не получает номера билетов.
EDIT (01/28/2015 - 8:11 AM MST): Я изменил код, чтобы получить различные значения для TicketNumber. Однако это не моя основная проблема, так как я все еще работаю над тем, чтобы получить ResultSet для получения информации.
Прошу прощения, я не был уверен в этом. Продажа уже добавлена в таблицу «Продажи» в базе данных. Предположим, что клиент купил инвентарные номера 1, 2 и 3, и они являются первым клиентом, совершившим покупку, поэтому номер билета: 1. Три таблицы добавляются в таблицу «Продажи», для каждого инвентарного номера и Столбец TicketNumber будет иметь значение «1» во всех трех строках. Затем я пытаюсь получить эту информацию и отобразить ее в jTable. Я хочу отобразить номера билетов в jTable TicketNumberTable. Но мой ResultSet не получает номера билетов. –
@ RyanShukis. , , Запрос 'select different' должен решить половину вашей проблемы о том, чтобы не получать дубликаты. Я не уверен в части jtable. –
Хорошо, я изменил этот код. Но я все еще ничего не вижу в своем jTable. На данный момент это моя основная проблема. Спасибо за вашу помощь. –