在这里的第一个问题,我希望我不会重复别人的问题。我将在接下来的几行中尽可能多地解释这个问题。请原谅我的英语,如果它真的很糟糕。
所以我这里有一个 JTable,我想在其中从数据库中检索值。到目前为止,我可以添加 1 个值,我知道这是为什么。问题是.如何向此表添加多个值?
这是我在操作中使用的方法,用于在特定商店中查找枪支及其数量
public ResultSet gunSearch(String id, int qty, int storeId) {
try {
String s = "SELECT gunID, gunName AS "Gun Name", gunPrice AS "Price", SellCost AS "Cost", availableQty AS "Amount Available", "+qty+" AS "Quantity" FROM Guns WHERE gunId = '" + id + "'AND storeId='"+storeId+"'";
pstmt = conn.prepareStatement(s);
rset = pstmt.executeQuery(s);
} catch (Exception ex) {
System.out.println("Error here at searchByProdId Operation "+ex);
}
return rset;
}
对于我的 GUI,我使用以下代码来显示用户输入的信息
public void actionPerformed(ActionEvent e){
if(e.getSource().equals(enterBtn)){
String gunID = gunIdText.getText();
int qty = Integer.parseInt(quantityText.getText());
table.setModel(DbUtils.resultSetToTableModel(op.gunSearch(gunID, qty, storeId)));
每当我单击"输入"按钮时,都会从数据库中检索数据列。但是,如果我重新输入另一个 gunId 和数量,前一列将消失,并从数据库中检索新的数据列。
我怎么可能,在JTable中输入几个不同的gunId和quantitie?
gunSearch
方法只返回一个结果。然后,您从这个结果中完全重新创建TableModel
,擦除旧模型中的任何内容。
您需要炮制一个新方法,该方法可以获取Collection<String>
(枪 ID 的集合)并为提供的每个 id 返回一行。
或者,您可以创建一个将枪添加到现有TableModel
的方法,而不是每次都从头开始重新创建整个模型。这取决于您希望应用程序如何工作,哪个选项更好。