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

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

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

相关文章

FreeRTOS事件组

什么是事件标志组? 事件标志位 :表明某个事件是否发生,联想:全局变量 flag 。通常按位表示,每一个位表示一个事件(高8 位不算) 事件标志组 是一组事件标志位的集合, 可以简单的理解事件标志组,就是一个整数。 事件标志组本质是一个 16 位或 32 位无符号的数据类型…

鸿蒙开发接口Ability框架:【DataAbilityHelper模块(JS端SDK接口)】

DataAbilityHelper模块(JS端SDK接口) 说明&#xff1a; 本模块首批接口从API version 7开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 本模块接口仅可在FA模型下使用。 使用说明 使用前根据具体情况引入如下模块 import featureAbility from …

假设检验统计量的选择

假设检验的本质是检验两组数据是否存在显著性差异&#xff0c;或者是否相关 如抛硬币概率与0.5有差距&#xff0c;我们可以通过假设检验来确定到底是偶然性还是硬币被动了手脚。 数据分类 我们收集的数据分为两种 分类型&#xff1a;如性别&#xff08;男&#xff0c;女&…

Excel中实现md5加密

1.注意事项 (1)在Microsoft Excel上操作 (2)使用完&#xff0c;建议修改的配置全部还原&#xff0c;防止有风险。 2.准备MD5宏插件 MD5加密宏插件放置到F盘下&#xff08;直接F盘下&#xff0c;不用放到具体某一个文件夹下&#xff09; 提示&#xff1a;文件在文章顶部&…

C语言实现动态加载.so动态库,使用,错误捕获以及卸载

动态库 概述 动态库的扩展名是.so。 动态库是被加载&#xff0c;调用的时候是根据内存地址去调用&#xff0c;而不是将代码复制到文件中。 动态库可以同时被多个进程使用。 实战案例&#xff1a;构建 libmath.so 动态库 准备源文件 calc.h 定义加法&#xff1a;int add…

【教程向】从零开始创建浏览器插件(三)解决 Chrome 扩展中弹出页面、背景脚本、内容脚本之间通信的问题

第三步&#xff1a;解决 Chrome 扩展中弹出页面、背景脚本、内容脚本之间通信的问题 Chrome 扩展开发中&#xff0c;弹出页面&#xff08;Popup&#xff09;、背景脚本&#xff08;Background Script&#xff09;、内容脚本&#xff08;Content Script&#xff09;各自拥有独立…

互联网轻量级框架整合之HibernateMyBatis

持久层框架 Hibernate 假设有个数据表&#xff0c;它有3个字段分别是id、rolename、note, 首先用IDEA构建一个maven项目Archetype选择org.apache.maven.archetypes:maven-archetype-quickstart即可&#xff0c;配置如下pom <project xmlns"http://maven.apache.org/…

攻防世界-web-unseping

题目 知识点 PHP代码审计PHP序列化和反序列化PHP中魔术方法命令执行绕过方式 解读源码 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function …

【算法】动态规划之背包DP问题(2024.5.11)

前言&#xff1a; 本系列是学习了董晓老师所讲的知识点做的笔记 董晓算法的个人空间-董晓算法个人主页-哔哩哔哩视频 (bilibili.com) 动态规划系列 【算法】动态规划之线性DP问题-CSDN博客 01背包 步骤&#xff1a; 分析容量j与w[i]的关系&#xff0c;然后分析是否要放…

户籍管理系统的设计与实现

【免费】户籍管理系统的设计与实现.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89296790 ​​​​​​​户籍管理系统的设计与实现 摘 要 当今社会人们生活质量越来越高&#xff0c;人们对生活品质的追求不断提升&#xff0c;对于孩子求学&#xff0c;变更住…

Selenium中的隐式等待和显式等待

在Selenium中&#xff0c;“等待”在执行测试中起着重要作用。在本文中&#xff0c;您将学习Selenium中“隐式”和“显式”等待的各个方面。 在本文中&#xff0c;您将学习到 1. 为什么我们需要在selenium中等待&#xff1f; 2. 隐瞒等待 3. 明确等待 4. 流利的等待 为什么…

Join优化规则及应用层BI系统实践

目录 一、背景 二、查询优化器概述​编辑 2.1 System R Optimizer 2.2 Volcano Optimizer 2.3 Cascade Optimizer 三、Join相关优化规则 3.1 JoinReorder 3.1.1 少量表的Reorder 3.1.2 大量表的Reorder 3.1.3 星型模型的Reorder 3.2 外连接消除 3.3 Join消除 3.4 谓…

UDP多播

1 、多播的概念 多播&#xff0c;也被称为组播&#xff0c;是一种网络通信模式&#xff0c;其中数据的传输和接收仅在同一组内进行。多播具有以下特点&#xff1a; 多播地址标识一组接口&#xff1a;多播使用特定的多播地址&#xff0c;该地址标识一组接收数据的接口。发送到多…

C#面:Session 喜欢丢值且占内存,Cookis不安全,请问 C# 可以用什么办法代替这两种原始的方法

可以使用 用 ViewState&#xff0c;stateserver。 在 C# 中&#xff0c;ViewState、StateServer 和 Session 都是用于在 Web 应用程序中存储和管理状态信息的机制。它们可以用来在不同的页面之间传递数据或者在同一页面的不同请求之间保持数据的持久性。 ViewState&#xff1…

[Vision Board创客营]--使用openmv识别阿尼亚

文章目录 [Vision Board创客营]使用openmv识别阿尼亚介绍环境搭建训练模型上传图片生成模型 使用结语 [Vision Board创客营]使用openmv识别阿尼亚 &#x1f680;&#x1f680;五一和女朋友去看了《间谍过家家 代号&#xff1a;白》&#xff0c;入坑二刺螈&#xff08;QQ头像也换…

在prompt使用占位符实现提高信息替换成功率和替换位置准确率【prompt】【LLM】

文章目录 问题占位符解决 问题 造数据集的时候遇到的&#xff0c;llm不能很好的帮你替换&#xff0c;替换的内容不对&#xff0c;或者是替换的位置不对&#xff0c;比如这里就是替换位置不对&#xff0c;只盯着doc2替换&#xff0c;无视你的替换位置的变化。 待处理文本 {&quo…

函数作用域(局部变量和全局变量)(狠狠爱住啦)

在Python中&#xff0c;变量可以分为局部变量和全局变量两种类型&#xff0c;它们的作用域不同&#xff0c;对于程序的执行有着不同的影响。 在函数内部定义的变量属于局部作用域&#xff0c;在函数外部定义的变量属于全局作用域。在函数内部&#xff0c;可以使用 global 关键…

小程序地理位置接口申请教程来啦4步学会

小程序地理位置接口有什么功能&#xff1f; 如果我们提审后驳回理由写了“当前提审小程序代码包中地理位置相关接口( chooseAddress、getLocation )暂未开通&#xff0c;建议完成接口开通后或移除接口相关内容后再进行后续版本提审”&#xff0c;如果你也碰到类似问题&#xff…

电火灶是燃气灶吗?节能、环保效果怎么样?

随着科技的进步&#xff0c;厨房中的传统设备也逐步被新型、高效且环保的设备所替代。电火灶&#xff0c;作为一种新型的电火烹饪设备&#xff0c;逐渐进入人们的视野。那么&#xff0c;电火灶是否与传统的燃气灶有所区别&#xff1f;其节能与环保效果又如何呢&#xff1f;下面…

使用 Spring Boot 构建 RESTful API 的最佳实践

在现代的软件开发中&#xff0c;构建高效、稳定的 RESTful API 是非常重要的一环。Spring Boot 是一个流行的 Java 开发框架&#xff0c;它提供了简化开发的工具和约定&#xff0c;使得构建 RESTful API 变得更加简单和快速。 本文将介绍使用 Spring Boot 构建 RESTful API 的…