# 项目化适配人大金仓R6 Mysql模式
官网下载人大金仓,安装时,选择MySQL模式
# 免责申请
此方案仅供参考,面向必须使用人大金仓MySQL的客户做项目化参考,其中所有修改都涉及定制开发成本,并且后期维护成本不低,尤其是升级!
项目化支持,意味着可能存在项目化适配成本,可能存在缺陷,并且后续产生的BUG可能需要额外项目化成本解决
# 操作步骤&解决方案
目前协同服务标准只适配了人大金仓R3(PG模式),人大金仓R6 Oracle模式
# 适配人大金仓R6 Mysql模式需做如下改动:
# 一、协同系统仍然走人大金仓的驱动和语言包,连接方式不需要做任何调整
# 二、取人大金仓R6 Mysql模式安装版本的驱动包
# 三、语法调整
1、ALL_TAB_COLUMNS替换成 INFORMATION_SCHEMA.COLUMNS 2、ALL_TABLES替换成 INFORMATION_SCHEMA.TABLES 3、USER_TABLES替换成 INFORMATION_SCHEMA.TABLES 4、all_ind_columns替换成sys_indexes
# 四、改动类
以下做为示例,能解决大部分问题,剩余的需要按语法差异做调整 1、ctp-core CTPKingbase8Dialect.java方法isExistColumnSQL,表名ALL_TAB_COLUMNS替换成INFORMATION_SCHEMA.COLUMNS
2、ctp-log-elasticsearch KingbaseDialect.java方法dmlOfTables,表名all_tables替换成INFORMATION_SCHEMA.TABLES
3、cap-api FormTableIndexBean.java方法searchIndexSql,ReportDBUtils.isKingBaseesSQLRunTime()分支, 表名all_ind_columns替换成sys_indexes,table_name替换成tablename, column_name替换成indexname,传参改成索引名(现传的是字段名)
4、cap-trigger-engine CAP4FormTriggerRecordDAOImpl.java方法hasRecordTable,JDBCAgent.isKingBaseesRunTime()分支下, 表名user_tables替换成INFORMATION_SCHEMA.TABLES
5、后续待客户验证完,再做完善
快速跳转
