一个可视化的数据库程序
为了对我们本章学习的内容进行总结,我们编写一个简单的 GUI 程序,它可以显示数据库的表名、列名和列内容。我们还将包括一个文本区域,您可以在其中键入一个要对数据库执行的 SQL 查询。在 Companion CD-ROM 上的 \chapter20 子目录中,可以找到本程序(称为 dbFrame.java)所使用的 resultSet 和 Database 类。程序的显示界面如图 3 所示。
图 3:用来显示用 JDBC 连接的数据库中的数据的 dbFrame.java 程序。
在本程序中,默认数据库 (groceries.mdb) 的表名显示在左侧的栏中。当您单击其中一个表名时,列名就会显示在中间的栏中。最后,当您单击中间栏中的某一行时,该行的内容就会显示在右侧的栏中。
本程序的关键只是接收列表选择,然后清除并填充正确的列表框:
public void itemStateChanged(ItemEvent e) { Object obj = e.getSource(); if (obj == Tables) //放入列名 showColumns(); if (obj == Columns) //放入列的内容 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()); } }





