2013-10-28 124 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