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();
}
}
}