Jak pobrać typ i rozmiar konkretnej tabeli z bazy ? Mam 2 sposoby, ale oba są nieco na około.
Można zrobić tak:
DatabaseMetaData metadata = connection.getMetaData();
ResultSet resultSet = metadata.getColumns(null, null, "users", null);
while (resultSet.next()) {
String type = resultSet.getString("TYPE_NAME");
int size = resultSet.getInt("COLUMN_SIZE");
}
Ale ja chce się odwołac od razu do konkretnej kolumny, bez potrzeby przeglądania wszystkiego.
Drugi sposób to:
ResultSet rsColumns = stmt.executeQuery("select * from tabela");
ResultSetMetaData rsMeta = rsCommerceColumns.getMetaData();
int type = commerceRsMeta.getColumnType(getColumnOrdinalPosition(tableName, columnName));
int position = commerceRsMeta.getPrecision(getColumnOrdinalPosition(tableName, columnName));
Ale tu muszę pobrać jakieś dane .. próbowałem wyciągnąć ResultSet metodą z piewszego przykładu, czyli
metadata.getColumns(null, null, "users", null);
ale zwraca dziwne wyniki. Swoją droga jak pobrać numer tabli jedną metodą ? Pokombinowałem też pod kątem czegoś takiego
DatabaseMetaData commerceDbMeta = commerceConnect.getMetaData();
rsCommerceColumns = commerceDbMeta.getSchemas();
ale też bez efektu. Można więc w prosty sposób pobrać typ i rozmiar konkretnej tabeli ? Trzeba chyba pobrać odpowiednio ResultSet, bez konieczności pobierania danych ... jako sam schemat - i wtedy mozna użyć ResultSetMetaData.