使用JDBC創(chuàng)建數(shù)據(jù)庫對象(6)

字號:

使用JDBC創(chuàng)建數(shù)據(jù)庫對象(6)
    · 一個(gè)可視化的數(shù)據(jù)庫程序
    為了對我們本章學(xué)習(xí)的內(nèi)容進(jìn)行總結(jié),我們編寫一個(gè)簡單的 GUI 程序,它可以顯示數(shù)據(jù)庫的表名、列名和列內(nèi)容。我們還將包括一個(gè)文本區(qū)域,您可以在其中鍵入一  個(gè)要對數(shù)據(jù)庫執(zhí)行的 SQL 查詢。在 Companion CD-ROM 上的 \chapter20 子目錄中,可以找到本程序(稱為 dbFrame.java )所使用的 resultSet 和 Database 類。數(shù)據(jù)庫圖示"
    在本程序中,默認(rèn)數(shù)據(jù)庫(groceries.mdb)的表名顯示在左側(cè)的欄中。當(dāng)您單擊其中一個(gè)表名時(shí),列名就會顯示在中間的欄中。最后,當(dāng)您單擊中間欄中的某一行時(shí),該行的內(nèi)容就會顯示在右側(cè)的欄中。
    本程序的關(guān)鍵只是接收列表選擇,然后清除并填充正確的列表框:
    public void itemStateChanged(ItemEvent e)
    {
    Object obj = e.getSource();
    if (obj == Tables) //
    放入列名
    showColumns();
    if (obj == Columns) //
    放入列的內(nèi)容
    showData();
    }
    //--
    private void loadList(List list, String[] s)
    {
    //
    清除并填充指定的列表框
    list.removeAll();
    for (int i=0; i< s.length; i++)
    list.add(s[i]);
    }
    //--
    private void showColumns()
    {
    //
    顯示列名
    String cnames[] =
    db.getColumnNames(Tables.getSelectedItem());
    loadList(Columns, cnames);
    }
    //--
    private void showData()
    {
    String colname = Columns.getSelectedItem();
    String colval =
    db.getColumnValue(Tables.getSelectedItem(),
    colname);
    Data.setVisible(false);
    Data.removeAll();
    Data.setVisible(true);
    colval =
    db.getNextValue(Columns.getSelectedItem());
    while (colval.length()>0)
    {
    Data.add(colval);
    colval =
    db.getNextValue(Columns.getSelectedItem());
    }
    }