Skip to content

Commit 1bc5439

Browse files
libailinlihongwei
authored and
lihongwei
committed
[Feature-#1904][sqlserver] fixed No suitable driver found for jdbc jtds
1 parent 2dcd8db commit 1bc5439

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

chunjun-connectors/chunjun-connector-sqlserver/src/main/java/com/dtstack/chunjun/connector/sqlserver/table/SqlserverDynamicTableFactory.java

+22
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@
2828
import com.dtstack.chunjun.connector.sqlserver.sink.SqlserverOutputFormat;
2929
import com.dtstack.chunjun.connector.sqlserver.source.SqlserverInputFormat;
3030

31+
import org.apache.flink.table.connector.sink.DynamicTableSink;
3132
import org.apache.flink.table.connector.source.DynamicTableSource;
33+
import org.apache.flink.table.factories.FactoryUtil;
3234

3335
import org.apache.commons.lang3.StringUtils;
3436

@@ -38,13 +40,20 @@ public class SqlserverDynamicTableFactory extends JdbcDynamicTableFactory {
3840

3941
private static final String IDENTIFIER = "sqlserver-x";
4042

43+
private JdbcConfig jdbcConfig;
44+
4145
@Override
4246
public String factoryIdentifier() {
4347
return IDENTIFIER;
4448
}
4549

4650
@Override
4751
protected JdbcDialect getDialect() {
52+
if (jdbcConfig != null) {
53+
return new SqlserverDialect(
54+
jdbcConfig.isWithNoLock(),
55+
jdbcConfig.getJdbcUrl().startsWith("jdbc:jtds:sqlserver"));
56+
}
4857
return new SqlserverDialect();
4958
}
5059

@@ -60,11 +69,24 @@ protected JdbcOutputFormatBuilder getOutputFormatBuilder() {
6069

6170
@Override
6271
public DynamicTableSource createDynamicTableSource(Context context) {
72+
final FactoryUtil.TableFactoryHelper helper =
73+
FactoryUtil.createTableFactoryHelper(this, context);
74+
this.jdbcConfig = getSourceConnectionConfig(helper.getOptions());
6375
Map<String, String> prop = context.getCatalogTable().getOptions();
6476
prop.put("druid.validation-query", "SELECT 1");
6577
return super.createDynamicTableSource(context);
6678
}
6779

80+
@Override
81+
public DynamicTableSink createDynamicTableSink(Context context) {
82+
final FactoryUtil.TableFactoryHelper helper =
83+
FactoryUtil.createTableFactoryHelper(this, context);
84+
this.jdbcConfig =
85+
getSinkConnectionConfig(
86+
helper.getOptions(), context.getCatalogTable().getResolvedSchema());
87+
return super.createDynamicTableSink(context);
88+
}
89+
6890
/** table字段有可能是[schema].[table]格式 需要转换为对应的schema 和 table 字段* */
6991
@Override
7092
protected void resetTableInfo(JdbcConfig jdbcConfig) {

0 commit comments

Comments
 (0)