Java Reference
In-Depth Information
DatabaseMetaData dbmd = con.getMetaData();
String catalog = con.getCatalog();
ResultSet rs = dbmd.getColumns(catalog,"%",tableName,"%");
ResultSetMetaData md = rs.getMetaData();
int nColumns = md.getColumnCount();
String value;
while(rs.next()){
columnData = new Hashtable();
for(int i=1;i<=nColumns;i++){
value = rs.getString(i);
if(value==null)value="<NULL>";
columnData.put(md.getColumnLabel(i),value);
}
columns.addElement(columnData);
}
}
catch(SQLException e){
reportException(e);
}
return columns;
}
The code examples of
Listings 10-5
,
10-5
,
and
10-6
are additions to the
DatabaseUtilities
class.
Further examples of the use of DatabaseMetaData are given later in this chapter.
Note
Many of the DatabaseMetaData methods have been added or modified in JDBC 2.0 and
JDBC 3.0, so if your driver is not JDBC 2.0 or JDBC 3.0 compliant, a SQLException
may be thrown by some DatabaseMetaData methods.
Displaying DatabaseMetaData in a JTree
The class required to display the table and column data retrieved from the
DatabaseMetaData
object
is an extension of
JInternalFrame.
This is used to display a
JTree
in a
JScrollPane
, as shown
in
Listing 10-7
.
Listing 10-7:
Displaying DatabaseMetaData in a JTree
package JavaDatabaseBible.part2;
import java.awt.*;
import java.util.Hashtable;
import java.util.Vector;
import javax.swing.*;
import javax.swing.JTree;
import javax.swing.border.*;
import javax.swing.tree.*;