v1.2.1 起十四种常用数据库驱动随包内置(TiDB 兼容 MySQL 协议、复用 MySQL 驱动),仅 GBase、神通 Oscar 与自定义数据库需要自备厂商驱动 jar
URLClassLoader + DriverShim 动态加载注册,
不污染应用类加载器,也不会与内置驱动发生版本冲突。
每一行都通过基于主键的 upsert 写入,重复执行收敛到同一状态 —— 这把「至少一次投递」变成了「结果上的恰好一次」
| 数据库 | 语句 |
|---|---|
| MySQL 系(MySQL / MariaDB / TiDB / OceanBase / GBase / H2) | INSERT ... ON DUPLICATE KEY UPDATE |
| PostgreSQL 系(PostgreSQL / openGauss / 金仓 / 瀚高 / 海量 / 神通) | INSERT ... ON CONFLICT (pk) DO UPDATE |
| Oracle 系(Oracle / 达梦 DM / 崖山 YashanDB) | MERGE INTO ... USING (SELECT ? FROM DUAL) |
| SQL Server | MERGE ... WITH (HOLDLOCK) |
| DB2 | MERGE INTO ... USING (VALUES (?)) |
| 通用 / 自定义 | UPDATE-then-INSERT(无原生 upsert 时的兜底,含唯一冲突重试) |
预置的 OceanBase 对应 MySQL 模式租户,Oracle 模式租户请选「自定义」类型并填写 Oracle 系
JDBC URL;崖山 YashanDB 的 URL 前缀为 jdbc:yasdb:,选择类型后自动生成,无需记忆。
十四种常用驱动随包内置,个别商业 / 自定义驱动仍按需动态加载,互不污染应用类加载器
MySQL、MariaDB、Oracle、SQL Server、DB2、PostgreSQL、openGauss、达梦 DM、人大金仓 KingBase、OceanBase、瀚高 HighGo、海量 Vastbase、崖山 YashanDB、H2。 v1.2.0 起随发行包内置,v1.2.1 扩充至十四种,开箱即用,新建连接时不再需要手动上传 jar。 TiDB 兼容 MySQL 协议,复用内置 MySQL 驱动,选 TiDB 类型即可。
仅 GBase、神通 Oscar 与自定义数据库需要自备 jar:在连接配置中填写驱动 jar 路径,工具会用独立 URLClassLoader 加载,并通过 DriverShim 注册到 DriverManager。
mkdir -p /opt/jync/drivers cp gbase-8.3.81.53.jar oscarJDBC.jar /opt/jync/drivers/ # 仅 GBase / 神通 Oscar 需要
然后在「数据库连接」页面新建连接时,填写驱动 jar 路径(如 /opt/jync/drivers/gbase-8.3.81.53.jar)
与驱动类名(选择预设类型时会自动填好)。点击「测试连接」验证加载成功即可保存。
THIRD_PARTY_LICENSES.md;GBase、神通 Oscar 等第三方驱动不随本项目分发,
请自行从厂商处获取并确认使用授权。
Oracle / SQL Server → 国产库的替换场景是本工具的主战场
达梦、人大金仓、OceanBase、TiDB、瀚高、海量、崖山、南大通用、神通、OpenGauss 十种信创库都是预设选项,各自有专门的方言与元数据读取器实现,而不是靠通用 JDBC 蒙。已处理的差异包括:
MERGE INTO ... FROM DUAL 这类 Oracle 系特有语法DECIMAL(0,0)SUBSTR → SUBSTRING,且不会二次命中自身这恰恰是 Debezium、Canal 生态最薄弱的地方 —— 它们基本不支持国产数据库。