民航电子数据库: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包

<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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字水印 | 数字水印技术原理入门

&#x1f34d;原文&#xff1a; 基于小波变换的数字水印技术 &#x1f34d;写在前面&#xff1a; 本文属搬运博客&#xff0c;自己留存学习。虽然原文标题聚焦于 “小波变换”&#xff0c;但实际上原文介绍了数字水印技术的整体情况。 前言 离散小波变换不仅可以较好地匹配人…

各种行业里的副业项目,你适合哪一类

你希望在周末能够请自己吃一顿豪华大餐嘛&#xff1f;哈哈&#xff0c;但问题来了&#xff0c;自己的收入勉强够支付生活开销&#xff0c;不足以让自己有额外的消费&#xff0c;这样的生活小调调怎么满足呢&#xff0c;那就一起通过副业来实现吧&#xff01; 面对五花八门的副业…

第⼀个SpringBoot程序

Spring Boot介绍 Spring让Java程序更加快速, 简单和安全. Spring对于速度、简单性和⽣产⼒的关注使其成为 世界上最流⾏的Java框架。 Spring Boot 的诞⽣是为了简化 Spring 项目而诞生的 创建Spring Boot项目 File->New Project->Spring Initializr 选择2.多的版本 创建…

群辉虚拟机安装openWRT作旁路由

最近在整活旁路由&#xff0c;基本就是要实现adguard和出国留学。openwrt这个的安装比较简单&#xff0c;就是先去找个镜像&#xff0c;然后导入即可。 我这里最后是去github上找了个大佬每天编译的地址链接。我用的是这个版本 1.下载解压得到img 下载完之后解压会得到一个…

YOLOv5改进 | 注意力机制 | 通道和空间的双重作用的CBAM注意力机制

在深度学习目标检测领域&#xff0c;YOLOv5成为了备受关注的模型之一。本文给大家带来的是通道和空间的双重作用的CBAM注意力机制。文章在介绍主要的原理后&#xff0c;将手把手教学如何进行模块的代码添加和修改&#xff0c;并将修改后的完整代码放在文章的最后&#xff0c;方…

【云原生】 Kubernetes核心概念

目录 引言 一、部署方式回溯 &#xff08;一&#xff09;传统部署时代 &#xff08;二&#xff09;虚拟化部署时代 &#xff08;三&#xff09;容器部署时代 二、Kubernetes基本介绍 &#xff08;一&#xff09;为什么使用k8s &#xff08;二&#xff09;主要功能 &am…

【JVM】Class文件的格式

目录 概述 Class文件的格式 概述 Class文件是JVM的输入&#xff0c;Java虚拟机规范中定义了Class文件的结构。Class文件是JVM实现平台无关、技术无关的基础。 1:Class文件是一组以8字节为单位的字节流&#xff0c;各个数据项目按顺序紧凑排列 2:对于占用空间大于8字节的数据…

BGP学习一:关于对等体建立和状态组改变

目录 一.BGP基本概念 &#xff08;1&#xff09;.BGP即是协议也是分类 1.早期EGP 2.BGP满足不同需求 3.BGP区域间传输的优势 &#xff08;1&#xff09;安全性——只传递路由信息 &#xff08;2&#xff09;跨网段建立邻居 4.BGP总结 5.BGP的应用 &#xff08;1&#…

力扣HOT100 - 295. 数据流的中位数

解题思路&#xff1a; 小顶堆 大顶堆 class MedianFinder {Queue<Integer> A, B;public MedianFinder() {A new PriorityQueue<>();B new PriorityQueue<>((x, y) -> (y - x));}public void addNum(int num) {if (A.size() ! B.size()) {A.add(num);B…

如何在Mac 电脑上安装 Homebrew

1、打开终端应用程序 在终端中输入以下命令并回车: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 这个命令会自动下载并运行 Homebrew 的安装脚本。 系统可能会提示您输入管理员密码,请输入您的 Mac 登录…

Django国际化与本地化指南

title: Django国际化与本地化指南 date: 2024/5/12 16:51:04 updated: 2024/5/12 16:51:04 categories: 后端开发 tags: Django-i18n本地化-L10n多语言国际化翻译工具表单验证性能优化 引言 在数字化时代&#xff0c;网站和应用程序必须跨越地域限制&#xff0c;服务于全球…

【MySQL】聊聊你不知道的前缀索引原理以及使用场景

背景 在本周的时候&#xff0c;接到一个需求&#xff0c;需要通过加密后的身份证 md5 去数据库里匹配。由于业务方存储的是身份证 md5username 构建的一列&#xff0c;并且没有加索引。 解决方案&#xff1a;1.新建一列 md5的列&#xff0c;加索引 2.对现有的列进行加前缀索引…

【免费】2024年全新超强版本itvboxfast如意版影视APP源码 TV+手机双端后台PHP源码

首先&#xff0c;让我们了解一下ITVBox如意版影视源码的特点和优势。这一源码基于先进的技术和框架开发&#xff0c;具有稳定、高效的性能&#xff0c;能够满足影视网站的各种需求。与此同时&#xff0c;该源码还提供了丰富的功能和模块&#xff0c;包括影视资源管理、会员系统…

攻防世界-web-file_include

题目 解题 通过阅读php代码&#xff0c;我们明显的可以发现&#xff0c;这个一个文件包含的类型题 文件包含漏洞也是一种“注入型漏洞”&#xff0c;其本质就是输入一段用户能够控制的脚本或者代码&#xff0c;并让服务器端执行。 require()&#xff0c;找不到被包含的文件时…

57. 【Android教程】相机:Camera

相机现在已经不仅仅是手机必备神器了&#xff0c;甚至相机的拍照质量已经是很多人买手机的首选条件了。而对于相机而言主要有两大功能&#xff1a;拍照片和拍视频。Android 为此两种方式&#xff1a; 相机 intent相机 API 本节我们就一起来看看相机的具体用法。 1. 打开 Camer…

Windows快速部署DCNv4(成功版)

文章目录 一、介绍二、编译DCNv42.1 下载源码2.2 编译DCNv4 三、报错提示3.1 Cuda is not available3.2 需要Microsoft Visual C 14.0 一、介绍 论文链接&#xff1a;[https://arxiv.org/pdf/2401.06197.pdf] (https://arxiv.org/pdf/2401.06197.pdf)   在这篇文章中介绍了一…

8种区块链开发者必须知道的顶级编程语言!

我来问你一个问题&#xff1a;请说出一种技术&#xff0c;它以去中心化、不可篡改和透明性等核心特征席卷了全球。 这个问题的答案是&#xff0c;当然是区块链&#xff0c;它在近些年进入大家的视野并颠覆了工商业&#xff0c;没有任何其他技术能够做到这一点。 预计从2020年…

通过python实现Google的精准搜索

问题背景&#xff1a; 我想通过Google或者其他网站通过精准搜索确认该产品是否存在&#xff0c;但是即使该产品不存在Google也会返回一些相关的url链接&#xff0c;现在想通过python实现搜索结果的精准匹配以确认该产品是否为正确的名称【可以通过google搜索到&#xff0c;如果…

Git的安装和配置

一、Git的介绍 代码的一套托管工具&#xff0c;它分为两个仓库&#xff0c;首先将你写的代码提交到本地仓库&#xff0c;这个时候只有你可以看&#xff0c;和你一起开发的同事看不到。将本地仓库的代码推到远程仓库&#xff08;githab、gitee、gitlab等之一&#xff09;&#…

斩获 32k 星!号称下一代知识库工具开源了!

AFFiNE&#xff08;发音为 [ə‘fain]&#xff09;是一个下一代知识库平台&#xff0c;它将规划、整理和创造整合在一个空间。AFFiNE致力于提供一个隐私优先、开源、可定制且即用性强的解决方案&#xff0c;作为 Notion 、Airtable、Miro 的整合“替代品”。 Notion 、Airtable…