Java資料庫編程中查詢結果的輸出

來源:互聯網
上載者:User
Java資料庫編程中查詢結果的輸出

利用Java開發資料庫應用系統時,經常需要在使用者介面上顯示查詢結果。由於SUN公司提供的JDK1.x開發套件不是可視化的整合式開發環境(IDE),能象Delphi、VB那樣方便地把查詢結果在DBGrid等表格中顯示出來。因此,只能靠自己編寫代碼來實現。

---- 在實際應用中,我們可以利用Vector、JTable、AbstractTableModel等三個類較好地解決這一問題。以下,具體介紹一下實現方法。

---- 一、類Vector、類JTable及類AbstractTableModel簡介:

---- 1、類Vector:

---- 類Vector是Java的曆史集合類,隸屬於java.util包。它封裝了異構鏈表和數組雜合體,具有以下兩個特點:

---- (1)向量是異構的,不要求每個元素的類型相同,向量中可以混合多種物件類型;

---- (2)向量是數組雜合體,因為它們可以在增加元素時動態增大。

---- 其異構性正好符合資料庫記錄中屬性類型不一的特點,而其動態性也正好符合資料庫查詢時,結果集記錄個數不定的特點。

---- 類Vector定義如下:

public class Vector extends AbstractList

implements List , Cloneable , Serializable{…}

---- 實現了向量成員的尋找、新增、刪除等方法。如:add(Object obj)可方便地加入一個對象;get(int index)可方便地得到向量中的一個對象;remove(Object obj)則可方便地刪除向量中一個對象。

---- 2、類JTable:

---- JTable組件是Swing組件中比較複雜的小件,隸屬於javax.swing包,它能以二維表的形式顯示資料。類JTable定義如下:

public class JTable extends JComponent

implements TableModelListener,

Scrollable, TableColumnModelListener,

ListSelectionListener,

CellEditorListener, Accessible{…}

---- 類JTable在顯示資料時具有以下特點:

---- (1)可定製性:可以定製資料的顯示方式和編輯狀態;

---- (2)異構性:可以顯示不同類型的資料對象,甚至包括顏色、表徵圖等複雜物件;

---- (3)簡便性:可以以預設方式輕鬆地建立起一個二維表。

---- 其可定製性可滿足不同使用者和場合的要求,異構性也正好符合資料庫訪問結果集中屬性類型不一的特點。類JTable提供了極為豐富的二維表格操作方法,如設定編輯狀態、顯示方式、選擇行列等,在此不一一贅述。

---- 使用類JTable顯示資料之前,必鬚根據情況產生定製模型、單元繪製器或單元編輯器。類AbstractListModel用來定製使用者自己的資料模型,這個類在後面要介紹。TableCellRenderer介面用來定製單元繪製器,TableCellEditor介面用來定製單元編輯器,這兩個介面主要用於顏色對象的處理上,在樣本中沒有用到,不做過多說明。

---- 3、類AbstractTableModel:

---- 類AbstractTableModel是一個抽象類別,沒有完全實現,不能執行個體化,使用時必須在程式中實現方法。它隸屬於javax.swing.table 。類定義如下:

public abstract class AbstractTableModel extends Object

implements TableModel, Serializable{…}

---- 類AbstractTableModel提供了TableModel介面中絕大多數方法的預設實現。TableModel介面定義了JTable 的基礎資料結構。使用者要產生自己的資料模型,本來可以通過實現TableModel介面中所有方法來滿足要求,但治理聽眾表的功能對於所有資料模型是共同的,所以在javax.swing.table中又定義了類AbstractTableModel來處理這個工作。它既治理聽眾表,又為產生TableModelEvents事件並委託給聽眾提供了便利。

---- 要想產生一個具體的TableModel作為AbstractTableMode的子類,至少必須實現下面三個方法:

public int getRowCount();

public int getColumnCount();

public Object getValueAt(int row, int column);

---- 至此,我們可以建立一個簡單二維表(5×5),實現方法如下:TableModel dataModel = new AbstractTableModel() {

public int getColumnCount() { return 5; }

public int getRowCount() { return 5;}

public Object getValueAt(int row, int col)

{ return new Integer(row*col); }

};

JTable table = new JTable(dataModel);

JScrollPane scrollpane = new JScrollPane(table);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.