【发布时间】:2014-01-05 10:34:45
【问题描述】:
朋友,每次单击按钮时,我都有 4 个带有数据的变量,我想将这 4 个变量添加到名为 Bill_Table 的具有 4 列的 JTable 中。
每次单击按钮时都应在 JTable 中添加一个新行。我尝试了以下代码。我可以从数据库中读取,我可以有 4 个变量,但我不能将它们作为新行插入到 JTable 中。
我怎样才能做到这一点?
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
item_name=name.getText();
int item_no=Integer.parseInt(no.getText());
String sql="SELECT id,price FROM item WHERE item.name='"+item_name+"'";
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con =(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/myshop","root","mysql");
java.sql.Statement stmt=con.createStatement();
if (stmt.execute(sql)) {
rs = stmt.getResultSet();
JOptionPane.showMessageDialog(this, "succes","executed query",JOptionPane.PLAIN_MESSAGE);
} else {
System.err.println("select failed");}
int idIndex = rs.findColumn("id");
int priceIndex = rs.findColumn("price");
while(rs.next()){
item_id=rs.getInt(idIndex);
item_price=rs.getInt(priceIndex);
}
item_amount = (item_price*item_no);
Vector data_rows = new Vector();
data_rows.addElement(item_name);
data_rows.addElement(item_price);
data_rows.addElement(item_no);
data_rows.addElement(item_amount);
dtm.addRow(data_rows);
//dtm is DefaultTableModel object,delared globelly
bill_table.setModel(dtm);
//bill_table is table name
}
catch (Exception e){
JOptionPane.showMessageDialog(this, e.getMessage());
}
}
【问题讨论】:
-
运行这段代码会发生什么?有错误吗?它怎么没有完成你的目标?
-
你为什么不使用你上次发帖中建议的
PreparedStatement? -
camickr,我可以在没有准备好的语句的情况下从数据库中读取数据,但问题是我不知道如何在 JTable 中连续显示 item_price,item_name,item_no,item_amount
标签: java mysql swing jtable netbeans-7