java.sql.DatabaseMetaData
Интерфейс java.sql.DatabaseMetaData запрашивает у СУБД информацию о структуре объектов БД, поддерживаемых СУБД функциях, типах данных и другие возможности. Интерфейс java.sql.DatabaseMetaData позволяет клиентским приложениям извлекать необходимую информацию в реальном времени (при условии, что пользователь имеет соответствующие права на выполнение запросов), благодаря чему можно получать не относящиеся конкретно к выполнению/обработке запросов подробности, например, какой символ используется в качестве разделителя и как СУБД обрабатывает null-значение при сортировке.
Пример
import java.sql.*; import com.relx.jdbc.LinterDriver; public class DatabaseMetaDataDemo { public static void main(String[] args) { try { Driver d = (Driver) Class.forName("com.relx.jdbc.LinterDriver") .newInstance(); String address = "jdbc:linter:linapid:localhost:1070:DEMO"; String user = "SYSTEM"; String password = "MANAGER8"; System.out.println("Driver found. Now connecting to database "); Connection con = DriverManager.getConnection(address, user, password); Statement stmt = con.createStatement(); DatabaseMetaData dbmd = con.getMetaData(); System.out.println("Product Name = " + dbmd.getDatabaseProductName()); System.out.println("MaxLengthTableName = " + dbmd.getMaxTableNameLength()); System.out.println("=== > Geting tables information"); ResultSet tables = dbmd.getTables(null, null, "%TY%", null); while (tables.next()) { String tableName = tables.getString("TABLE_NAME"); String tableSchema = tables.getString("TABLE_SCHEM"); if (tableSchema.length() > 0) tableName = tableSchema + "." +tableName; System.out.println(tableName); } stmt.close(); } catch (Exception e) { System.out.println("Catched :" + e + " mess= " + e.getMessage()); e.printStackTrace(); } } }