Java 如何将多行添加到JTable?
我试图从数据库填充JTable,但输出仍然为空。这是我的密码:Java 如何将多行添加到JTable?,java,jtable,Java,Jtable,我试图从数据库填充JTable,但输出仍然为空。这是我的密码: private void buttonsearchActionPerformed(java.awt.event.ActionEvent evt) { conn=DatabaseConnection.dbConnection(); 试一试{ String Sql=“从produit中选择idp、nomp、prix和stock,其中codep=” +textsearch.getText()+“'”; pst=conn.prepareSt
private void buttonsearchActionPerformed(java.awt.event.ActionEvent evt)
{
conn=DatabaseConnection.dbConnection();
试一试{
String Sql=“从produit中选择idp、nomp、prix和stock,其中codep=”
+textsearch.getText()+“'”;
pst=conn.prepareStatement(Sql);
ResultSet rs=pst.executeQuery();
DefaultTableModel=新的DefaultTableModel();
Object[]列={“Id Produit”、“Nom Produit”、“Quantité”、“Prix”、“Stock”};
model.setColumnIdentifiers(列);
表2.setModel(model);
Object[]行=新对象[5];
如果(rs.next())
{
行[0]=rs.getInt(“idp”);
行[1]=rs.getString(“nomp”);
//行[2]=rs.getString(“”);
行[3]=rs.getString(“prix”);
第[4]行=rs.getString(“股票”);
model.addRow(row);
}
}捕获(例外e){
showMessageDialog(null,e);
}
}
表“poduit”为:
中的“数量”
这意味着修改项目数量以创建账单
我的问题是第二行粘贴在第一行的右边
感谢您的帮助根据互联网本身,所有示例都使用以下行:
DefaultTableModel deFaultTableModel = (DefaultTableModel) myJTable.getModel();
因此,您必须替换代码行“DefaultTableModel=new DefaultTableModel()代码>'byDefaultTableModel=(DefaultTableModel)table.getModel()代码>根据互联网本身,所有示例都使用以下行:
DefaultTableModel deFaultTableModel = (DefaultTableModel) myJTable.getModel();
因此,您必须替换代码行“DefaultTableModel=new DefaultTableModel()代码>'byDefaultTableModel=(DefaultTableModel)table.getModel()代码>您可能希望使用循环来迭代结果集(当前仅使用第一个条目),并将每个结果行添加到模型中。当你这样做的时候,你当然需要在循环外创建表模型和列标题。除了Thomas的评论:@Thomas我的代码甚至没有显示第一行,我不知道问题出在哪里请尝试调试。rs.next()
返回什么?另外,请不要对数据库查询使用字符串连接。这是避免SQL注入的基本方法,我是第二个Ferdz的评论。调试代码并查看查询是否返回任何内容。让我告诉您,如果您将参数附加到查询字符串中,而不是使用PreparedStatement
和setString(…)
(或任何其他设置参数的方法)会发生什么情况。您可能希望使用循环来迭代结果集(当前仅使用第一个条目)并将每个结果行添加到模型中。当你这样做的时候,你当然需要在循环外创建表模型和列标题。除了Thomas的评论:@Thomas我的代码甚至没有显示第一行,我不知道问题出在哪里请尝试调试。rs.next()
返回什么?另外,请不要对数据库查询使用字符串连接。这是避免SQL注入的基本方法,我是第二个Ferdz的评论。调试代码并查看查询是否返回任何内容。让我告诉您,如果您将参数附加到查询字符串中,而不是使用PreparedStatement
和setString(…)
(或任何其他设置参数的方法)会发生什么情况。
DefaultTableModel deFaultTableModel = (DefaultTableModel) myJTable.getModel();