use of org.apache.commons.dbutils.QueryRunner in project metacat by Netflix.
the class MysqlUserMetadataService method getDescendantDataUris.
@Override
public List<String> getDescendantDataUris(@Nonnull final String uri) {
List<String> result;
final Connection connection = DBUtil.getReadConnection(poolingDataSource);
try {
final ColumnListHandler<String> handler = new ColumnListHandler<>("uri");
result = new QueryRunner().query(connection, SQL.GET_DESCENDANT_DATA_URIS, handler, uri + "/%");
} catch (SQLException e) {
log.error("Sql exception", e);
throw new UserMetadataServiceException(String.format("Failed to get descendant uris for %s", uri), e);
} finally {
DBUtil.closeReadConnection(connection);
}
return result;
}
use of org.apache.commons.dbutils.QueryRunner in project metacat by Netflix.
the class MysqlUserMetadataService method _deleteDataMetadatas.
@SuppressWarnings("checkstyle:methodname")
private Void _deleteDataMetadatas(final Connection conn, @Nullable final List<String> uris, final boolean removeDataMetadata) throws SQLException {
if (uris != null && !uris.isEmpty()) {
final List<String> paramVariables = uris.stream().map(s -> "?").collect(Collectors.toList());
final String[] aUris = uris.stream().toArray(String[]::new);
final String paramString = Joiner.on(",").skipNulls().join(paramVariables);
final ColumnListHandler<Long> handler = new ColumnListHandler<>("id");
final List<Long> ids = new QueryRunner().query(conn, String.format(SQL.GET_DATA_METADATA_IDS, paramString), handler, (Object[]) aUris);
if (!ids.isEmpty()) {
final List<String> idParamVariables = ids.stream().map(s -> "?").collect(Collectors.toList());
final Long[] aIds = ids.stream().toArray(Long[]::new);
final String idParamString = Joiner.on(",").skipNulls().join(idParamVariables);
new QueryRunner().update(conn, String.format(SQL.DELETE_DATA_METADATA_DELETE, idParamString), (Object[]) aIds);
if (removeDataMetadata) {
new QueryRunner().update(conn, String.format(SQL.DELETE_DATA_METADATA, idParamString), (Object[]) aIds);
}
}
}
return null;
}
use of org.apache.commons.dbutils.QueryRunner in project metacat by Netflix.
the class MysqlUserMetadataService method _deleteDefinitionMetadatas.
@SuppressWarnings("checkstyle:methodname")
private Void _deleteDefinitionMetadatas(final Connection conn, @Nullable final List<QualifiedName> names) throws SQLException {
if (names != null && !names.isEmpty()) {
final List<String> paramVariables = names.stream().map(s -> "?").collect(Collectors.toList());
final String[] aNames = names.stream().map(QualifiedName::toString).toArray(String[]::new);
new QueryRunner().update(conn, String.format(SQL.DELETE_DEFINITION_METADATA, Joiner.on(",").skipNulls().join(paramVariables)), (Object[]) aNames);
}
return null;
}
use of org.apache.commons.dbutils.QueryRunner in project metacat by Netflix.
the class MysqlUserMetadataService method getDescendantDefinitionNames.
@Override
public List<QualifiedName> getDescendantDefinitionNames(@Nonnull final QualifiedName name) {
List<String> result;
final Connection connection = DBUtil.getReadConnection(poolingDataSource);
try {
final ColumnListHandler<String> handler = new ColumnListHandler<>("name");
result = new QueryRunner().query(connection, SQL.GET_DESCENDANT_DEFINITION_NAMES, handler, name.toString() + "/%");
} catch (SQLException e) {
log.error("Sql exception", e);
throw new UserMetadataServiceException(String.format("Failed to get descendant names for %s", name), e);
} finally {
DBUtil.closeReadConnection(connection);
}
return result.stream().map(QualifiedName::fromString).collect(Collectors.toList());
}
use of org.apache.commons.dbutils.QueryRunner in project metacat by Netflix.
the class MysqlUserMetadataService method getDeletedDataMetadataUris.
@Override
public List<String> getDeletedDataMetadataUris(final Date deletedPriorTo, final Integer offset, final Integer limit) {
List<String> result;
final Connection connection = DBUtil.getReadConnection(poolingDataSource);
try {
final ColumnListHandler<String> handler = new ColumnListHandler<>("uri");
result = new QueryRunner().query(connection, String.format(SQL.GET_DELETED_DATA_METADATA_URI, offset, limit), handler, deletedPriorTo);
} catch (SQLException e) {
log.error("Sql exception", e);
throw new UserMetadataServiceException(String.format("Failed to get deleted data metadata uris deleted prior to %s", deletedPriorTo), e);
} finally {
DBUtil.closeReadConnection(connection);
}
return result;
}
Aggregations