Merge pull request #2074 from xieruiming/fix_conn

postSql use DriverManager to get connection
This commit is contained in:
NJUEEXRM 2024-03-18 17:11:56 +08:00 committed by GitHub
commit 072b24f673
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -191,32 +191,34 @@ public class BaseWriter {
// 一般来说是需要推迟到 task 中进行post 的执行单表情况例外 // 一般来说是需要推迟到 task 中进行post 的执行单表情况例外
public void post(Configuration originalConfig) { public void post(Configuration originalConfig) {
String username = originalConfig.getString(Key.USERNAME); try {
String password = originalConfig.getString(Key.PASSWORD); String username = originalConfig.getString(Key.USERNAME);
String password = originalConfig.getString(Key.PASSWORD);
String jdbcUrl = originalConfig.getString(Key.JDBC_URL); String jdbcUrl = originalConfig.getString(Key.JDBC_URL);
String table = originalConfig.getString(Key.TABLE); String table = originalConfig.getString(Key.TABLE);
List<String> postSqls = originalConfig.getList(Key.POST_SQL, List<String> postSqls = originalConfig.getList(Key.POST_SQL,
String.class); String.class);
List<String> renderedPostSqls = WriterUtil.renderPreOrPostSqls( List<String> renderedPostSqls = WriterUtil.renderPreOrPostSqls(
postSqls, table); postSqls, table);
if (null != renderedPostSqls && !renderedPostSqls.isEmpty()) { if (null != renderedPostSqls && !renderedPostSqls.isEmpty()) {
// 说明有 postSql 配置则此处删除掉 // 说明有 postSql 配置则此处删除掉
originalConfig.remove(Key.POST_SQL); originalConfig.remove(Key.POST_SQL);
String tempJdbcUrl = jdbcUrl.replace("postgresql", "hologres"); String tempJdbcUrl = jdbcUrl.replace("postgresql", "hologres");
Connection conn = DBUtil.getConnection(this.dataBaseType, try (Connection conn = DriverManager.getConnection(
tempJdbcUrl, username, password); tempJdbcUrl, username, password)) {
LOG.info(
LOG.info( "Begin to execute postSqls:[{}]. context info:{}.",
"Begin to execute postSqls:[{}]. context info:{}.", StringUtils.join(renderedPostSqls, ";"), tempJdbcUrl);
StringUtils.join(renderedPostSqls, ";"), tempJdbcUrl); WriterUtil.executeSqls(conn, renderedPostSqls, tempJdbcUrl, dataBaseType);
WriterUtil.executeSqls(conn, renderedPostSqls, tempJdbcUrl, dataBaseType); }
DBUtil.closeDBResources(null, null, conn); }
} catch (SQLException e) {
throw DataXException.asDataXException(DBUtilErrorCode.SQL_EXECUTE_FAIL, e);
} }
} }
public void destroy(Configuration originalConfig) { public void destroy(Configuration originalConfig) {