
com.huaweicloud.dws.client.handler.SqlActionHandler Maven / Gradle / Ivy
package com.huaweicloud.dws.client.handler;
import com.huaweicloud.dws.client.DwsConfig;
import com.huaweicloud.dws.client.action.SqlAction;
import com.huaweicloud.dws.client.exception.DwsClientException;
import com.huaweicloud.dws.client.worker.ConnectionProvider;
import lombok.extern.slf4j.Slf4j;
import java.sql.Connection;
import java.sql.SQLException;
/**
* @ProjectName: dws-connector
* @ClassName: SqlActionHandler
* @Description:
* @Date: 2023/1/29 18:35
* @Version: 1.0
*/
@Slf4j
public class SqlActionHandler extends AbstractActionHandler> {
private final ConnectionProvider connectionProvider;
private final DwsConfig config;
public SqlActionHandler(ConnectionProvider connectionProvider, DwsConfig config) {
this.connectionProvider = connectionProvider;
this.config = config;
}
@Override
public void handle(SqlAction action) throws DwsClientException {
Connection connection = null;
try {
connection = connectionProvider.getOrInitConnection();
} catch (Exception e) {
log.error("sql action get connection fail.", e);
throw DwsClientException.fromException(e);
}
try {
action.getFuture().complete(action.getFunc().apply(connection));
} catch (SQLException e) {
log.error("sql action apply fail.", e);
throw DwsClientException.fromException(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy