This class represents the metadata for a database. It is essentially a wrapper around
java.sql.DatabaseMetaData.
Some data can be cached on the first retrieval in order to speed up subsequent retrievals. To clear this cache call clearCache().
From the JavaDoc for java.sql.DatabaseMetaData. "Some methods take arguments that are String patterns. These arguments all have names such as fooPattern. Within a pattern String, "%" means match any substring of 0 or more characters, and "_" means match any one character. Only metadata entries matching the search pattern are returned. If a search pattern argument is set to null, that argument's criterion will be dropped from the search."
Additionally, it should be noted that some JDBC drivers (like Oracle) do not handle multi-threaded access to methods that return ResultSets very well. It is therefore highly recommended that methods in this class that return a ResultSet, should not be called outside of this class where this class' monitor has no jurisdiction. Furthermore, methods that are meant to be called externally that create a ResultSet should package the data in some container object structure for use by the caller, and should always be synchronized on this class' monitor.
@author Colin Bell