
com.huaweicloud.dws.client.handler.AbstractActionHandler Maven / Gradle / Ivy
package com.huaweicloud.dws.client.handler;
import com.huaweicloud.dws.client.exception.DwsClientException;
import com.huaweicloud.dws.client.model.Column;
import com.huaweicloud.dws.client.model.Record;
import com.huaweicloud.dws.client.worker.ConnectionProvider;
import lombok.extern.slf4j.Slf4j;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
/**
* @ProjectName: dws-connector
* @ClassName: AbstractActionHandler
* @Description:
* @Date: 2023/1/16 15:01
* @Version: 1.0
*/
@Slf4j
public abstract class AbstractActionHandler {
public final ConnectionProvider connectionProvider;
public AbstractActionHandler(ConnectionProvider connectionProvider) {
this.connectionProvider = connectionProvider;
}
public abstract void handle(T action) throws DwsClientException;
public static void fillRecord(Record record, int recordIndex, ResultSet rs, int resultSetIndex, Column column)
throws SQLException {
switch (column.getType()) {
case Types.SMALLINT:
if (rs.getObject(resultSetIndex) != null) {
record.setValue(recordIndex, rs.getShort(resultSetIndex));
break;
}
case Types.OTHER:
default:
record.setValue(recordIndex, rs.getObject(resultSetIndex));
}
}
public Connection getConnection() throws DwsClientException {
try {
return connectionProvider.getOrInitConnection();
} catch (Exception e) {
log.error("get connection fail", e);
throw DwsClientException.fromException(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy