民航电子数据库:select查询时部分字段缺失

目录

    • 前言
    • 异常
    • 排查
    • 原因
    • 解决
      • 使用systemPath标签引入本地Jar包后无法打包


前言

1、对接民航电子数据库

2、框架为shardingsphere + caedb + mybatis

3、部分SQL查询时,会出现字段缺失的情况

4、查看日志打印出来的SQL,字段并未缺失


异常

这里省略SQL语句

在这里插入图片描述


排查

1、通过截图可以看出,数据库返回的字段是完整的,并没有缺失

在这里插入图片描述


2、但是在映射结果的时候,字段缺失了

在这里插入图片描述


3、发现缺失的字段,在SQL解析时,连字段别名都是错误的

在这里插入图片描述


4、发现执行SQL时,是以SQL92的语法来执行的,并不是MySQL

在这里插入图片描述


5、shardingsphere是根据数据库链接来判断数据库类型,由于cae还未合并到开源社区,所以找不到对应的数据库类型

在这里插入图片描述


原因

民航电子数据库(CAEDB)还未合并到开源社区,shardingsphere还未兼容cae数据库,所以shardingsphere处理SQL时,是以SQL92的语法来解析SQL,导致部分SQL出现奇奇怪怪的异常情况


解决

排除shardingsphere-sql-parser-binder 、shardingsphere-common,使用民航电子数据库那边提供的Jar包

缺点:shardingsphere版本无法升级,如果升级需要找民航电子数据库开发人员提供对应版本的Jar包

<dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.1.1</version><exclusions><!--民航电子数据库:排除shardingsphere以下两个依赖--><exclusion><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-sql-parser-binder</artifactId></exclusion><exclusion><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-common</artifactId></exclusion></exclusions>
</dependency>
<!--民航电子数据库:引入本地依赖-->
<dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-sql-parser-binder</artifactId><version>4.1.1</version><systemPath>${project.basedir}/lib/apache-shardingsphere-binder-4.1.1.jar</systemPath><scope>system</scope>
</dependency>
<dependency><groupId>org.apache.shardingsphere</groupId><artifactId>apache-shardingsphere-common</artifactId><version>4.1.1</version><systemPath>${project.basedir}/lib/apache-shardingsphere-common-4.1.1.jar</systemPath><scope>system</scope>
</dependency>

更换后SQL正常执行

在这里插入图片描述


在这里插入图片描述


使用systemPath标签引入本地Jar包后无法打包

http://t.csdnimg.cn/iw1yw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/703824.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

✅什么是时间轮?

一、问题解析 时间轮算法&#xff08;Time Wheel Algorithm&#xff09;是一种用于处理定时任务和调度的常见算法。 时间轮算法主要需要定义一个时间轮盘&#xff0c;在一个时间轮盘中划分出多个槽位&#xff0c;每个槽位表示一个时间段&#xff0c;这个段可以是秒级、分钟级、…

Invalid bound statement (not found) 六种解决方法

前五种参考博文&#xff1a; Invalid bound statement (not found) 五种解决方法-CSDN博客 第六种&#xff1a; 在启动类上加上MapperScan&#xff0c;指定扫描包

web前端框架设计第八课-表单控件绑定

web前端框架设计第八课-表单控件绑定 一.预习笔记 1.v-model实现表单数据双向绑定 2.搜索数据的实现 3.全选案例实现1—JQ方法 4.单选案例实现 5.数据级联&#xff08;二级级联&#xff09; 6.v-model中的修饰符 二.课堂笔记 三.课后回顾 –行动是治愈恐惧的良药&#xff0c…

DolphinScheduler(海豚调度)- docker部署实战

1.官方文档 https://dolphinscheduler.apache.org/zh-cn/docs/3.2.1/guide/start/docker 2.docker环境安装 版本情况&#xff08;这个地方踩了不少坑&#xff09;&#xff1a;docker-26.1.2&#xff0c;docker-compose-v2.11.0。 具体可使用我上传的安装包&#xff0c;一键安…

C++ | string详解

1、string是什么 string是STL文档的容器之一&#xff0c;是一个自定义类型&#xff0c;是一个类&#xff0c;由类模板basic_string实例化出来的一个类&#xff1b; 类模板basic_string实例化出来了四个类&#xff0c;如下图所示&#xff1b; 实例化出的这四个类不同的是他们的编…

2024最新互联网公司工作时长排行榜出炉!

“工作时长”&#xff0c;是选择公司的一个非常重要的参考指标。 我们在选择一个公司的时候&#xff0c;除了需要关注总收入package 以外&#xff0c;还需要考虑这家公司的加班时长是否人性化。 我们的工作时长是周工作小时数。法定工作时间是40小时(955)。大小周通常折算为周…

银河麒麟操作系统下使用QT连接TiDB数据库开发步骤

目标:实现项目软件+硬件都运行在国产化操作系统平台上。 方法:在虚拟机中安装麒麟系统V10Sp1+Qt5.14.2+MySql8.0+TiDB软件,编译MySql驱动,测试连接TiDB数据库项目。 步骤: 1、使用虚拟机软件VMWare安装银河麒麟操作系统。 2、在银河麒麟系统上安装QT5.14.2软件。 3、…

2024一站式解决 python打包代码,发布到pypi

2024一站式解决 python打包代码&#xff0c;发布到pypi 文章目录 2024一站式解决 python打包代码&#xff0c;发布到pypi一、前言二、pypi账户注册与配置2.1 账户注册2.2 双因素认证2.3 API token生成 三、代码打包3.1 准备代码3.2 编写setup.py文件3.3 LICENSE3.3.1 常见的开源…

邦注科技 工业冷水机的风冷和水冷的区别介绍

工业冷水机在工业生产中扮演着重要角色&#xff0c;特别是在需要精确控制温度的应用中。风冷式冷水机和水冷式冷水机是两种常见的类型&#xff0c;它们之间存在一些显著的区别。 热交换的来源不同&#xff1a; 风冷式冷水机&#xff1a;热交换的来源是气体。它采用空气冷却方…

三方库移植之NAPI开发[2]C/C++与JS的数据类型转

通过NAPI框架进行C/C与JS数据类型的转换 OpenHarmony NAPI将ECMAScript标准中定义的Boolean、Null、Undefined、Number、BigInt、String、Symbol和Object八种数据类型&#xff0c;以及函数对应的Function类型&#xff0c;统一封装成napi_value类型&#xff0c;下文中表述为JS类…