信创适配现状:低代码平台对国产数据库与中间件的支持

2026-11-01 7 0

结论先行:信创适配(信息技术应用创新适配)的验收标准只有一条——原有业务流程在国产软硬件栈上跑出与原来一致的结果。装得上、能启动、能登录,只是第一层。决定成败的是数据库层的 SQL 方言与驱动,以及最常被跳过的中间件与浏览器。

一、把「适配」拆成四层,逐层核对

厂商的适配清单是一张组合矩阵,上面的「支持」含义很窄:能安装、能连上。验收要自己往下拆四层。

芯片与操作系统

CPU 架构决定二进制能不能跑:鲲鹏、飞腾是 ARM,龙芯是 LoongArch,海光、兆芯是 x86。麒麟(Kylin)与统信 UOS 又各自分服务器版与桌面版。

核对动作:确认各组件有对应架构的安装包,JDK 与 glibc 版本满足要求,locale 与字体装齐,否则报表导出的中文会变成方块。

数据库

达梦 DM8、人大金仓 KingbaseES、OceanBase、GaussDB、TiDB 各有自己的兼容路线,差异全部落在 SQL 层。这一层单独展开,见第二节。

中间件

东方通 TongWeb、宝兰德 BES、金蝶 Apusic 都实现 Java EE Web 容器的主要规范,但不是全集。低代码平台若依赖私有 API、特定类加载(ClassLoader)行为或非标准部署描述符,就会卡住。

核对动作:把平台交付的 war 包或可执行 jar 部署上去,观察连接池是否泄漏、上传目录是否可写、会话超时是否一致。

浏览器

奇安信、360 安全浏览器在信创环境常见,内核往往落后主流 Chromium 若干版本。设计器大量使用可选链、空值合并,内核过低会直接白屏。

核对动作:在设计器里拖一个复杂表单,检查拖拽、撤销、代码编辑器语法高亮三项是否正常。

二、数据库层才是真考场:八个差异点

这是最容易在验收通过之后爆发的一层。八个点里,前三个能直接让页面报 500。

SQL 方言与分页写法

达梦以 Oracle 兼容为主,人大金仓以 PostgreSQL 兼容为主并另提供 Oracle 模式,OceanBase 分 MySQL 模式与 Oracle 模式,GaussDB 偏 PostgreSQL,TiDB 走 MySQL 协议。同一句分页 SQL,换库就可能语法报错。

分页尤其明显:Oracle 模式习惯 ROWNUM 两层嵌套或 OFFSET…FETCH,PostgreSQL 模式用 LIMIT…OFFSET,MySQL 模式用 LIMIT。引擎的动态 SQL 若写死一种,切库后翻页会缺行或报错。

验证方法:列表页每页 20 条翻到第 50 页,比对总条数与首页排序。

大小写敏感

PostgreSQL 系对未加引号的标识符统一折叠为小写,Oracle 模式折叠为大写,MySQL 在 Linux 上默认表名区分大小写。低代码自动建表常生成驼峰字段,切库后直接报「列不存在」。

验证方法:建含大写字母的表名与字段,跑查询、更新、关联各一次。

字符集

达梦与金仓在初始化实例时就要定字符集,事后修改代价很高。UTF-8 换成 GBK,生僻字、emoji、全角空格会变成问号,而且不报错。

验证方法:写入「𠮷」、一个 emoji、一个全角空格,再读出来做字节比对。

事务隔离级别

MySQL 默认 REPEATABLE READ,Oracle 与 PostgreSQL 默认 READ COMMITTED。审批常是「先查后改」,靠隔离级别兜住并发;换库后乐观锁失效,同一单据被两人先后审批通过。

验证方法:开两个会话,同时提交同一张单据,看是否只有一个成功。

驱动版本与连接参数

国产库的 JDBC 驱动多数要从厂商官网或 Maven 私服取,版本必须与数据库版本匹配。连接串参数名也各不相同,字符集、SSL、批量开关各写各的。

验证方法:让厂商给驱动包与推荐连接串,在自己环境验证,别只信测试机。

批量插入

MySQL 需要开启 rewriteBatchedStatements 才把多条 insert 合成一次网络往返;Oracle 模式走数组绑定;PostgreSQL 走多值 insert 或 COPY。写法不对,导一万行会慢一个数量级。

JSON 函数

动态表单常把扩展字段存成 JSON。MySQL 用 JSON_EXTRACT,PostgreSQL 用 -> 与 ->>,Oracle 用 JSON_VALUE,各家实现不同,切库后函数直接不存在。

时区与日期精度

有的库 TIMESTAMP 带时区、DATETIME 不带;CURRENT_TIMESTAMP 的精度从秒到微秒不等。审批超时、SLA 计时会整体偏移 8 小时。

三、中间件与浏览器:两层最容易漏的补测

中间件的问题集中在连接池、类加载、文件上传三处,都不在功能测试的覆盖范围里。

连接池泄漏测试期看不出来,跑一天后线程耗尽;类加载冲突表现为同包两版本共存,启动报 NoSuchMethodError;上传目录默认在临时路径,容器重启后附件丢失。

浏览器的问题集中在内核版本。除了白屏,还有打印控件、大文件分片上传、WebSocket 心跳三类。新 API 在低版本内核上不会降级,只会静默失败。

补测动作:用真实国产浏览器从登录走到导出打印,全程不切 Chrome。

补测重点取决于部署形态,见部署架构选型。

四、适配核对表

检查项 验证方法 不合格表现
分页与总数 列表翻到第 50 页,比对总条数与排序 缺行、重复行、翻页报错
表名字段大小写 建含大写字段的表并完成增删改查 列不存在、隐式建表失败
字符集与生僻字 写入 emoji、生僻字、全角空格后回读比对 显示问号、导出乱码
并发审批 两会话同时提交同一张单据 重复审批、状态互相覆盖
批量导入 一万行 Excel 导入并记录耗时 超时、部分成功、主键冲突
附件上传 上传 20MB 文件,重启中间件后再下载 文件丢失、路径 404
时区与超时 跨零点提交一条审批,核对超时计算 偏差 8 小时、精度丢秒
浏览器兼容 国产浏览器打开设计器与复杂表单 白屏、拖拽失效、打印错位

五、向厂商要八个答案

这八个问题在设计阶段问,并写进合同或技术附件;验收阶段再问只会扯皮。

  1. 适配组合矩阵:芯片 × 操作系统 × 数据库 × 中间件 × 浏览器,每一项标明具体版本号与验证日期。
  2. 驱动与连接串:国产库 JDBC 驱动的交付方式、版本号、Maven 坐标,以及推荐的连接参数。
  3. SQL 兼容报告:平台用了哪些方言特性、分页 SQL 如何生成、有没有独立的方言适配层。
  4. 性能基线:在哪种国产化组合、多大数据量、多少并发下测过;只给 TPS 不给场景的基线视为无效。
  5. 问题定级与响应时限(SLA):国产库兼容问题算产品缺陷还是定制开发,工单分级与响应、解决时限。
  6. 版本升级责任:国产库小版本升级后是否需要重新适配,由谁负责回归。
  7. 现场联调责任:出问题时平台方、数据库厂商、集成商三方谁主导定位,避免互相推。
  8. 兼容自检工具:是否提供 SQL 兼容自检脚本或测试用例集,能自己在目标环境跑一遍。

六、验收:拿真实业务 SQL 做回归

Hello World 只能证明连得上。回归要覆盖六类 SQL:列表分页、多条件组合查询、批量导入、审批提交与撤回、报表汇总、定时任务。

每组数据准备三档量级:空库、万级、十万级。空库验证语法,万级验证索引,十万级验证执行计划。只测空库是最常见的自欺。

把慢 SQL 打印出来存档,作为切换前后的对比基线。同一句 SQL 在两种库上耗时差一倍属于正常,差二十倍要查执行计划,而不是先怪硬件。

自托管平台在这里有个天然优势:数据访问收敛在服务端一层,方言差异可以集中处理。猫拽低代码(CatPull)采用「可视化设计器 + DSL Schema」路线,自托管部署时可把数据库适配收在服务端;但它不承诺开箱适配任意国产库,仍要按核对表逐项验证。改造路径见信创适配指南,本篇讲的是现状核对与验收方法。

验收结论要落成文档:哪几项通过、哪几项带条件通过、哪几项不通过及整改责任人与期限。口头说「没问题」,等于没做。数据主权怎么验证的导入导出思路,同样适用于判断数据是否落在自己的库里。

FAQs

Q1:厂商说已经适配达梦,还需要自己测吗?

A:要。厂商的适配通常指平台自身表结构与基础增删改查跑通,你的业务字段、复杂查询、报表 SQL 不在其测试范围内。用自己的真实数据做一轮回归,成本远低于上线后返工。

Q2:信创项目一定要换浏览器吗?

A:不一定,取决于终端管控策略。若终端已统一配发国产浏览器,就必须在它上面完成验收;若允许安装 Chrome,可以按内核版本要求放宽。关键是提前确认,别在上线周才发现装不了。

Q3:OceanBase 和 TiDB 的适配难度一样吗?

A:不一样。OceanBase 有 MySQL 与 Oracle 两种模式,TiDB 走 MySQL 协议。模式一旦选错,等于换了一种 SQL 方言,适配工作量完全不同。签约前先把模式定下来,再谈适配清单。

延伸阅读


相关文章

换掉旧系统时数据怎么迁?低代码数据迁移的五步法与坑
低代码里的数据脱敏:手机号、身份证在前端怎么处理
低代码平台支持单点登录吗?SSO、LDAP、AD 域集成清单
低代码应用的灰度发布与版本回滚怎么做
内网部署方案:企业封闭网络怎么跑低代码
多租户数据隔离方案:共享库、独立库与 Schema