use of com.github.mgramin.sqlboot.model.resource.impl.DbResourceImpl in project sql-boot by sql-boot.
the class SchemaJdbcResourceType method read.
@Override
public Stream<DbResource> read(final Uri uri) throws BootException {
try {
final List<DbResource> result = new ArrayList<>();
final ResultSet columns = dataSource.getConnection().getMetaData().getSchemas(null, uri.path(0));
final ResultSetMetaData tableMetaData = columns.getMetaData();
final int columnsCount = tableMetaData.getColumnCount();
while (columns.next()) {
final String schemaName = columnsCount >= 1 ? columns.getString(1) : null;
final Map<String, Object> properties = new LinkedHashMap<>();
properties.put("TABLE_SCHEM", columnsCount >= 1 ? columns.getString(1) : null);
properties.put("TABLE_CATALOG", columnsCount >= 2 ? columns.getString(2) : null);
result.add(new DbResourceImpl(schemaName, this, new DbUri(name(), asList(schemaName)), properties));
}
return result.stream();
} catch (SQLException e) {
throw new BootException(e);
}
}
use of com.github.mgramin.sqlboot.model.resource.impl.DbResourceImpl in project sql-boot by sql-boot.
the class ProcedureJdbcResourceType method read.
@Override
public Stream<DbResource> read(final Uri uri) throws BootException {
try {
final List<DbResource> result = new ArrayList<>();
final ResultSet tables = dataSource.getConnection().getMetaData().getProcedures(null, uri.path(0), uri.path(1));
final ResultSetMetaData tableMetaData = tables.getMetaData();
final int columnsCount = tableMetaData.getColumnCount();
while (tables.next()) {
final String tableSchem = columnsCount >= 2 ? tables.getString(2) : null;
final String procedureName = columnsCount >= 3 ? tables.getString(3) : null;
final Map<String, Object> props = new LinkedHashMap<>();
int i = 1;
for (String s : properties.keySet()) {
props.put(s, columnsCount >= i ? tables.getString(i++) : null);
}
result.add(new DbResourceImpl(procedureName, this, new DbUri(name(), asList(tableSchem, procedureName)), props));
}
return result.stream();
} catch (SQLException e) {
throw new BootException(e);
}
}
use of com.github.mgramin.sqlboot.model.resource.impl.DbResourceImpl in project sql-boot by sql-boot.
the class ColumnJdbcResourceType method read.
@Override
public Stream<DbResource> read(final Uri uri) throws BootException {
try {
final List<DbResource> result = new ArrayList<>();
final ResultSet columns = dataSource.getConnection().getMetaData().getColumns(null, uri.path(0), uri.path(1), uri.path(2));
final ResultSetMetaData tableMetaData = columns.getMetaData();
final int columnsCount = tableMetaData.getColumnCount();
while (columns.next()) {
final String schemaName = columnsCount >= 2 ? columns.getString(2) : null;
final String tableName = columnsCount >= 3 ? columns.getString(3) : null;
final String columnName = columnsCount >= 4 ? columns.getString(4) : null;
final Map<String, Object> props = new LinkedHashMap<>();
int i = 1;
for (String s : properties.keySet()) {
props.put(s, columnsCount >= i ? columns.getString(i++) : null);
}
result.add(new DbResourceImpl(columnName, this, new DbUri(name(), asList(schemaName, tableName, columnName)), props));
}
return result.stream();
} catch (SQLException e) {
throw new BootException(e);
}
}
use of com.github.mgramin.sqlboot.model.resource.impl.DbResourceImpl in project sql-boot by sql-boot.
the class IndexJdbcResourceType method read.
@Override
public Stream<DbResource> read(final Uri uri) throws BootException {
try {
final TableJdbcResourceType tableJdbcResourceType = new TableJdbcResourceType(dataSource);
final Stream<DbResource> tables = tableJdbcResourceType.read(uri);
final List<DbResource> result = new ArrayList<>();
for (final DbResource table : tables.collect(toList())) {
final String tableSchem = table.headers().get("TABLE_SCHEM").toString();
final String tableName = table.headers().get("TABLE_NAME").toString();
final ResultSet indexes = dataSource.getConnection().getMetaData().getIndexInfo(null, tableSchem, tableName, false, false);
final ResultSetMetaData tableMetaData = indexes.getMetaData();
final int columnsCount = tableMetaData.getColumnCount();
while (indexes.next()) {
final String indexName = columnsCount >= 6 ? indexes.getString(6) : null;
final Map<String, Object> props = new LinkedHashMap<>();
int i = 1;
for (String s : properties.keySet()) {
props.put(s, columnsCount >= i ? indexes.getString(i++) : null);
}
result.add(new DbResourceImpl(indexName, this, new DbUri(name(), asList(tableSchem, tableName, indexName)), props));
}
}
return result.stream();
} catch (SQLException e) {
throw new BootException(e);
}
}
use of com.github.mgramin.sqlboot.model.resource.impl.DbResourceImpl in project sql-boot by sql-boot.
the class FunctionJdbcResourceType method read.
@Override
public Stream<DbResource> read(final Uri uri) throws BootException {
try {
final List<DbResource> result = new ArrayList<>();
final ResultSet tables = dataSource.getConnection().getMetaData().getFunctions(null, uri.path(0), uri.path(1));
final ResultSetMetaData tableMetaData = tables.getMetaData();
final int columnsCount = tableMetaData.getColumnCount();
while (tables.next()) {
final String tableSchem = columnsCount >= 2 ? tables.getString(2) : null;
final String functionName = columnsCount >= 3 ? tables.getString(3) : null;
final Map<String, Object> props = new LinkedHashMap<>();
int i = 1;
for (String s : properties.keySet()) {
props.put(s, columnsCount >= i ? tables.getString(i++) : null);
}
result.add(new DbResourceImpl(functionName, this, new DbUri(name(), asList(tableSchem, functionName)), props));
}
return result.stream();
} catch (SQLException e) {
throw new BootException(e);
}
}
Aggregations