2013-10-28 121 views
0

我想在我的库存系统中生成一个JTable,并且当用户单击查看账单按钮Image of my Billing Form时,我想从我的数据库表中显示记录到JTable。从数据库创建JTable

enter image description here

数据库结构

Bill_Master

  1. Bill_Id(主键INT): - 存储单号
  2. Bill_Date(日期):存储日期作者比尔
  3. Customer_Name(VARCHAR(50)):客户名称
  4. Total_amt(NUMBER(6)):总账单金额
  5. Cash_Disc(编号(2)):折扣
  6. Grand_Total(编号(6)):大达尔(Total-Discnt)
  7. UID(VARCHAR (10))存储生成那个法案。(职员)

    Bill_Details

  8. Bill_Detailid(INT PRIMARY KEY)的详细比尔一号
  9. Bill_Id(外键Bill_Master)
  10. ITEM_ID(外键股份)
  11. 数量(INT)
  12. 率(编号(5))
  13. 总(编号(5))

我想要显示的详细账单当用户点击搜索按钮法案通过查询

Select * from Bill_Master Inner join Bill_Details on Bill_Master.Bill_Id=Bill_Details.Bill_Id.

数据库连接类型:ODBC 请帮助生成表格。

+2

开始一些教程[如何使用表(http://docs.oracle.com/javase/tutorial/uiswing/components/table的.html)。我建议你应该创建一个POJO来表示你将从数据库中收集的数据,这将使得从长远来看易于管理 – MadProgrammer

回答

2

您可以使用向量从ResultSet中获取数据并将每行表格添加到DefaultTableModel。

像下面的例子:

try { 
     ResultSetMetaData rm = rs.getMetaData(); 
     int j = rm.getColumnCount(); 
     JTable table=new JTable(); 
     int rowCount = table.getRowCount(); 
     DefaultTableModel model = (DefaultTableModel) table.getModel(); 
     Vector v = null; 
     if (rowCount == 0) { 
      while (rs.next()) { 
       v = new Vector(); 

       for (int i = 1; i <= j; i++) { 
        String type = rm.getColumnTypeName(i); 
        // System.out.println(type); 
        switch (type) { 
         case "FLOAT": 
          v.add(rs.getFloat(i)); 
          break; 
         case "COUNTER": 
          v.add(rs.getInt(i)); 
          break; 
         case "VARCHAR": 
          v.add(rs.getString(i)); 
          break; 
         case "INTEGER": 
          v.add(rs.getInt(i)); 
          break; 
         case "DATETIME": 
          v.add(rs.getString(i)); 
          break; 
         case "MEDIUMINT": 
          v.add(rs.getInt(i)); 
          break; 
         case "LONGBLOB": 
          v.add(rs.getTime(i)); 
          break; 
         default: 
          v.add(rs.getString(i)); 
        } 
       } 
       model.addRow(v); 
      } 

这里模型是上,您必须添加该行的表格的的DefaultTableModel。 你明白了吗?或者有任何疑问。?

+0

我没有为此创建任何表。我想在点击按钮时创建并显示表格。以上代码能做到这一点吗?我是java的初学者。如果你可以请解释一点。 – Aswin

+0

我已经更新了代码。看看它。 – chintan

+0

谢谢。无论如何用另一个框架弹出整个表格? – Aswin

1
while(resultset.next()){ 
    // iterate through the results, get necessary column values add them into table model 
    Vector v = new Vector(); 
    v.add(resultset.getString(0)); 
    . 
    . 
    model.addRow(v) 

} 

table.setModel(model) 

按照有关如何通过查看在使用的JTable