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

news2025/1/10 20:40:40

目录

    • 前言
    • 异常
    • 排查
    • 原因
    • 解决
      • 使用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包

<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.coloradmin.cn/o/1665179.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】/*逻辑控制语句和输入输出—快速总结*/

目录 前言 一、分支语句 1.1 if 语句 1.2 switch 语句 二、循环语句 2.1 while 循环 2.1.1 break 2.1.2 continue 2.2 for 循环 2.3 do_while 循环 三、逻辑语句的小结 四、Java 中的输入输出 4.1 输出到控制台 4.2 从键盘输入 前言 Java 中的逻辑控制语句和C语…

1分钟搞定Pandas DataFrame创建与索引

1.DataFrame介绍 DataFrame 是一个【表格型】的数据结构,可以看作是【由Series组成的字典】(共用同一个索引)。DataFrame 由按一定顺序排列的多列数据组成。设计初衷是将 Series 的使用场景从一维扩展到多维。DataFrame 既有行索引,也有列索引。 行索引:index 列索引:co…

【18-Ⅱ】Head First Java 学习笔记

HeadFirst Java 本人有C语言基础&#xff0c;通过阅读Java廖雪峰网站&#xff0c;简单速成了java&#xff0c;但对其中一些入门概念有所疏漏&#xff0c;阅读本书以弥补。 第一章 Java入门 第二章 面向对象 第三章 变量 第四章 方法操作实例变量 第五章 程序实战 第六章 Java…

【qt】纯代码界面设计

界面设计目录 一.界面设计的三种方式1.使用界面设计器2.纯代码界面设计3.混合界面设计 二.纯代码进行界面设计1.代码界面设计的总思路2.创建项目3.设计草图4.添加组件指针5.初始化组件指针6.添加组件到窗口①水平布局②垂直布局③细节点 7.定义槽函数8.初始化信号槽9.实现槽函数…

如何禁止打开PDF文件?推荐2种方法!

在工作中&#xff0c;我们经常会使用到PDF文件&#xff0c;对于重要的文件&#xff0c;不想被随意打开怎么办呢&#xff1f;下面小编分享2个方法&#xff0c;第二个很实用&#xff0c;记得收藏起来&#xff01; 方法1&#xff1a;设置密码保护 我们可以通过PDF编辑器&#xff…

【图像识别】Swin Transformer

一、引言 论文&#xff1a; Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 作者&#xff1a; Microsoft Research Asia 代码&#xff1a; Swin Transformer 特点&#xff1a; 提出滑动窗口自注意力 (Shifted Window based Self-Attention) 解决Vi…

恶意软件正劫持安全软件更新进行分发

GuptiMiner 是一个高度复杂的威胁&#xff0c;最早在 2018 年发现&#xff0c;主要为了在大型企业中分发后门。一种是 PuTTY Link 的增强版本后门&#xff0c;能够针对本地网络进行 SMB 扫描&#xff0c;并通过网络横向移动到网络上其他可能易受攻击的 Windows 7 和 Windows Se…

如何盘点选择的连锁收银系统贵不贵

在选择连锁收银系统时&#xff0c;成本是一个至关重要的考量因素。盘点连锁收银系统的成本既涉及到系统本身的购买费用&#xff0c;也包括了系统的维护、培训以及可能带来的附加费用。下面将从四个方面对连锁收银系统的成本进行盘点。 1. 初始投资成本 连锁收银系统的初始投资…

Python基础详解四

一&#xff0c;Json解析 字典转换为JSON&#xff1a; import jsondata [{"name":"袁震","age":20},{"name":"张三","age":21},{"name":"李四","age":22}] str json.dumps(data) …

c++父类指针指向子类

有一个常见的c题&#xff0c;就是父类和子类的构造函数和析构函数分别调用顺序&#xff1a; 父类构造函数子类构造函数子类析构函数父类析构函数 以及父类中的函数在子类中重新实现后&#xff0c;父类指针指向子类后&#xff0c;该指针调用的函数是父类中的还是子类中的&…

【GlobalMapper精品教程】079:投影坐标系转地理坐标系(UTM转WGS1984/2000)

文章目录 一、矢量UTM转WGS1984/20001. UTM转WGS19842. UTM转CGCS2000二、栅格UTM转WGS1984/2000一、矢量UTM转WGS1984/2000 加载配套实验数据(data079.rar)中的矢量数据,如下所示: 查看源坐标系:双击图层的,图层投影选项卡,为UTM投影,Zone48N。 设置系统坐标系:点击…

【MATLAB源码-第206期】基于matlab的差分进化算法(DE)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 差分进化算法&#xff08;Differential Evolution, DE&#xff09;是一种有效的实数编码的进化算法&#xff0c;主要用于解决实值函数的全局优化问题。本文将详细介绍差分进化算法的背景、原理、操作步骤、参数选择以及实际应…

2024数维杯数学建模竞赛A题完整代码和思路论文解析

2024数维杯数学建模完整代码和成品论文已更新&#xff0c;获取↓↓↓↓↓ https://www.yuque.com/u42168770/qv6z0d/bgic2nbxs2h41pvt?singleDoc# 2024数维杯数学建模A题34页论文已完成&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&…

Qt之常用控件一

Widget常见属性及其作用 属性作用enabled 设置控件是否可使⽤. true 表⽰可⽤, false 表⽰禁⽤ geometry 位置和尺⼨. 包含 x, y, width, height 四个部分. 其中坐标是以⽗元素为参考进⾏设置的. windowTitle 设置 widget 标题 windowIcon 设置 widget 图标 windowOpa…

【姿态解算与滤波算法】

姿态解算 一、主线 姿态表示方式&#xff1a;矩阵表示&#xff0c;轴角表示&#xff0c;欧拉角表示&#xff0c;四元数表示。 惯性测量单元IMU&#xff08;Inertial Measurement Unit&#xff09;&#xff1a;MPU6050芯片&#xff0c;包含陀螺仪和加速度计&#xff0c;分别测…

为啥我说英语能决定程序员的天花板?

看到知乎有这样的一个问题&#xff0c;作为程序员的你&#xff0c;大学最后悔没有好好学哪门课&#xff1f; 很多人回答《软件工程》、《线性代数》、《微积分》等&#xff0c;各种都有。。 但我觉得&#xff0c;这些课都很重要&#xff0c;但没学好不妨碍自学。 其实对程序…

芯课堂 | 如何使用SWM系列产品的TIMER功能(一)

01 TIMER简介 TIMER是一种定时器工具&#xff0c;用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。 我司的SWM系列单片机提供的TIMER个数和功能有些微差别&#xff0c;为了让您更加简单的使用这一功能&#xff0c;下面将以SWM190为例&#xff0…

高效视频剪辑:视频批量调色,如何利用色调调整提升效率

在视频剪辑的后期处理中&#xff0c;调色是一个至关重要的环节。它不仅能够改变视频的整体氛围和风格&#xff0c;还能够突出视频的重点&#xff0c;增强观众的视觉体验。然而&#xff0c;对于大量的视频素材进行逐个调色处理&#xff0c;无疑会耗费大量的时间和精力。我们可以…

在IDEA中使用 Spring Initializr 新建 spring boots 项目

【在IDEA中使用 Spring Initializr 新建 spring boots 项目 - CSDN Apphttp://t.csdnimg.cn/mVs5P Spring Initializr 创建spring boots项目 添加到pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connec…

鸿蒙开发接口Ability框架:【(窗口扩展能力)】

窗口扩展能力 WindowExtensionAbility基于ExtensionAbility&#xff0c;WindowExtensionAbility中展示的内容作为一个控件(AbilityComponent)内容展示在其他应用窗口中&#xff0c;实现在一个窗口中展示多个应用程序内容的功能。 说明&#xff1a; 本模块首批接口从API versio…