Mysql元数据访问方法、装置、设备及介质与流程

文档序号:26746850发布日期:2021-09-25 00:41阅读:51来源:国知局
mysql元数据访问方法、装置、设备及介质
技术领域
:1.本技术涉及数据库
技术领域
:,特别涉及一种基于schemacrawler的mysql元数据访问方法、装置、设备及介质。
背景技术
::2.schemacrawler是一个开源的第三方库,可以获取支持jdbc驱动类型(jdbc,即javadatabaseconnectivity,java数据库连接)的数据库的schema信息,包括database、table、column、pk(即primarykey,主键)、fk(即foreignkey,外键)、indexs、sequence等。当前最新版本的schemacrawler可以获取mysql数据库中的普通元数据信息,但是默认是不支持获取存在特殊字符(如“.”)的表名、字段名等元数据信息,因此,在通过schemacrawler获取mysql的表名、字段名中包含特殊字符的元数据信息时,获取结果为空。技术实现要素:3.有鉴于此,本技术的目的在于提供一种基于schemacrawler的mysql元数据访问方法、装置、设备及介质,能够在依然使用第三方开源插件schemacrawler的基础上,实现获取包含特殊字符的元数据信息的效果。其具体方案如下:4.第一方面,本技术公开了一种基于schemacrawler的mysql元数据访问方法,包括:5.当获取到针对包含预设特殊字符的目标mysql元数据发起的元数据获取请求,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含所述预设特殊字符的查询结果;其中,所述预设特殊字符为当基于在查询过程中使用过滤条件的查询原则对所述元数据获取请求进行查询响应时能够致使所述目标mysql元数据无法被查询到的字符;6.基于与所述元数据获取请求对应的过滤条件,对所述查询结果进行过滤,以得到相应的所述目标mysql元数据。7.可选的,若所述元数据获取请求为针对包含所述预设特殊字符的表名发起的获取请求,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含预设特殊字符的查询结果,包括:8.基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含所述预设特殊字符的表信息。9.可选的,若所述元数据获取请求为针对包含所述预设特殊字符的目标数据表的字段信息发起的获取请求,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含预设特殊字符的查询结果,包括:10.判断所述目标数据表的表名是否包含所述预设特殊字符,如果是,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含所述预设特殊字符的表信息及相应的字段信息。11.可选的,若所述目标数据表的表名不包含所述预设特殊字符,则还包括:12.利用预设的表名过滤条件,对所述查询结果进行过滤,以匹配到所述目标数据表的字段信息。13.可选的,所述利用预设的表名过滤条件,对所述查询结果进行过滤,以匹配到所述目标数据表的字段信息之前,还包括:14.通过预设的过滤条件配置接口,配置所述预设的表名过滤条件。15.第二方面,本技术公开了一种基于schemacrawler的mysql元数据访问装置,包括:16.数据查询模块,用于当获取到针对包含预设特殊字符的目标mysql元数据发起的元数据获取请求,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含所述预设特殊字符的查询结果;其中,所述预设特殊字符为当基于在查询过程中使用过滤条件的查询原则对所述元数据获取请求进行查询响应时能够致使所述目标mysql元数据无法被查询到的字符;17.数据过滤模块,用于基于与所述元数据获取请求对应的过滤条件,对所述查询结果进行过滤,以得到相应的所述目标mysql元数据。18.可选的,若所述元数据获取请求为针对包含所述预设特殊字符的表名发起的获取请求,则所述数据查询模块,具体用于基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含所述预设特殊字符的表信息。19.可选的,若所述元数据获取请求为针对包含所述预设特殊字符的目标数据表的字段信息发起的获取请求,则所述数据查询模块,具体用于判断所述目标数据表的表名是否包含所述预设特殊字符,如果是,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含所述预设特殊字符的表信息及相应的字段信息。20.第三方面,本技术公开了一种电子设备,包括:21.存储器,用于保存计算机程序;22.处理器,用于执行所述计算机程序,以实现前述公开的基于schemacrawler的mysql元数据访问方法。23.第四方面,本技术公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的的基于schemacrawler的mysql元数据访问方法。24.本技术中,当获取到针对包含预设特殊字符的目标mysql元数据发起的元数据获取请求,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含预设特殊字符的查询结果;其中,所述预设特殊字符为当基于在查询过程中使用过滤条件的查询原则对所述元数据获取请求进行查询响应时能够致使所述目标mysql元数据无法被查询到的字符;基于与所述元数据获取请求对应的过滤条件,对所述查询结果进行过滤,以得到相应的所述目标mysql元数据。可见,本技术中,当获取到针对包含预设特殊字符的目标mysql元数据发起的元数据获取请求,则在schemacrawler的查询阶段不使用过滤条件,这样一来,包含有预设特殊字符的元数据信息便可以出现在查询结果中,而不会在查询阶段便被剔除掉;在得到包含有预设特殊字符的查询结果之后,才进行相应的过滤处理,以得到可以包含预设特殊字符的mysql元数据。由此可见,本技术能够在依然使用第三方开源插件schemacrawler的基础上,实现获取包含特殊字符的元数据信息的效果。附图说明25.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。26.图1为本技术公开的一种基于schemacrawler的mysql元数据访问方法流程图;27.图2为本技术公开的一种具体的基于schemacrawler的mysql元数据访问方法流程图;28.图3为本技术公开的一种具体的基于schemacrawler的mysql元数据访问方法流程图;29.图4为本技术公开的一种具体的基于schemacrawler的mysql元数据访问方法装置结构示意图;30.图5为本技术公开的一种电子设备结构图。具体实施方式31.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。32.schemacrawler是一个开源的第三方库,可以获取支持jdbc驱动类型的数据库的schema信息,包括database、table、column、pk、fk、indexs、sequence等。当前最新版本的schemacrawler可以获取mysql数据库中的普通元数据信息,但是默认是不支持获取存在特殊字符的表名、字段名等元数据信息。例如,对于形式为a.b的表名信息来说,符号“.”便属于特殊字符,现有技术中,通过schemacrawler无法获取到包含上述特殊字符的mysql元数据信息。因此,在通过schemacrawler获取mysql的表名、字段名中包含特殊字符的元数据信息时,获取结果为空。为此,本技术提供了一种基于schemacrawler的mysql元数据访问方案,能够在依然使用第三方开源插件schemacrawler的基础上,实现获取包含特殊字符的元数据信息的效果。33.参见图1所示,本技术实施例公开了一种基于schemacrawler的mysql元数据访问方法,包括:34.步骤s11:当获取到针对包含预设特殊字符的目标mysql元数据发起的元数据获取请求,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含所述预设特殊字符的查询结果;其中,所述预设特殊字符为当基于在查询过程中使用过滤条件的查询原则对所述元数据获取请求进行查询响应时能够致使所述目标mysql元数据无法被查询到的字符。35.本实施例中,上述预设特殊字符包括但不限于“.”。36.本实施例中,为了避免在查询过程中过滤掉包含特殊字符的元数据信息,选择在查询过程中不使用过滤条件的查询原则,这样一来,通过schemacrawler对mysql数据库进行查询后,便可以得到相应的包含特殊字符的查询结果,此时诸如a.b等形式的表名等元数据信息便不会被过滤掉。37.步骤s12:基于与所述元数据获取请求对应的过滤条件,对所述查询结果进行过滤,以得到相应的所述目标mysql元数据。38.本实施例中,在获取到包含预设特殊字符的查询结果之后,便可以基于与元数据获取请求对应的过滤条件对查询结果进行过滤匹配,从而精确匹配到可以包含上述预设特殊字符的相应mysql元数据信息。可以理解的是,本实施例中的与元数据获取请求对应的过滤条件具体可以包括但不限于基于所要获取的元数据信息中的关键词构建的过滤条件等。39.需要指出的是,本实施例中,元数据获取请求具体可以分为两种的,一种是表名获取请求,与其对应的过滤条件是表名过滤条件;另一种则是字段获取请求,与其对应的过滤条件是字段过滤条件。40.另外,本实施例中具体可以按照用户自定义设置的方式并根据查询的请求内容,对查询过程对应的过滤条件进行设定。具体的,本实施例可以基于正则表达式的方式对过滤条件进行设定,当程序接受上述设定的过滤条件后,接着会在sql查询过程中将其转换为相应的sql条件表达式。41.本技术实施例中,当获取到针对包含预设特殊字符的目标mysql元数据发起的元数据获取请求,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含预设特殊字符的查询结果;基于与所述元数据获取请求对应的过滤条件,对所述查询结果进行过滤,以得到相应的所述目标mysql元数据。可见,本技术中,当获取到针对包含预设特殊字符的目标mysql元数据发起的元数据获取请求,则在schemacrawler的查询阶段不使用过滤条件,这样一来,包含有预设特殊字符的元数据信息便可以出现在查询结果中,而不会在查询阶段便被剔除掉;在得到包含有预设特殊字符的查询结果之后,才进行相应的过滤处理,以得到可以包含预设特殊字符的mysql元数据。由此可见,本技术实施例能够在依然使用第三方开源插件schemacrawler的基础上,实现获取包含特殊字符的元数据信息的效果。42.参见图2所示,本技术实施例公开了一种具体的基于schemacrawler的mysql元数据访问方法,包括:43.步骤s21:当获取到针对包含预设特殊字符的表名发起的获取请求,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含预设特殊字符的表信息。44.步骤s22:基于与所述元数据获取请求对应的过滤条件,对所述包含预设特殊字符的表信息进行过滤,以得到相应的mysql元数据。45.本实施例中,在需要获取表名这种元数据信息的时候,基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含预设特殊字符的表信息,然后基于与所述元数据获取请求对应的过滤条件,对所述包含预设特殊字符的表信息进行过滤,以得到相应的mysql元数据。通过上述方式,能够获得包含预设特殊字符的表名信息。46.参见图3所示,本技术实施例公开了一种具体的基于schemacrawler的mysql元数据访问方法,包括:47.步骤s31:当获取到针对包含预设特殊字符的目标数据表的字段信息发起的获取请求,则判断所述目标数据表的表名是否包含所述预设特殊字符;48.步骤s32:如果是,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含预设特殊字符的表信息及相应的字段信息。49.步骤s33:基于与所述元数据获取请求对应的过滤条件,对所述包含预设特殊字符的表信息及相应的字段信息进行过滤,以得到相应的mysql元数据。50.步骤s34:如果否,则利用预设的表名过滤条件,对所述查询结果进行过滤,以匹配到所述目标数据表的字段信息。51.可以理解的是,本实施例中,在所述利用预设的表名过滤条件,对所述查询结果进行过滤,以匹配到所述目标数据表的字段信息之前,还可以包括:通过预设的过滤条件配置接口,配置所述预设的表名过滤条件。其中,上述过滤条件配置接口具体可以是位于人机交互界面上的配置接口,通过该配置接口,用户能够根据自身的实际需要,配置相应的表名过滤条件,以达到精确匹配或筛选的目的。52.参见图4所示,本技术实施例还相应公开了一种基于schemacrawler的mysql元数据访问装置,包括:53.数据查询模块11,用于当获取到针对包含预设特殊字符的目标mysql元数据发起的元数据获取请求,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含所述预设特殊字符的查询结果;其中,所述预设特殊字符为当基于在查询过程中使用过滤条件的查询原则对所述元数据获取请求进行查询响应时能够致使所述目标mysql元数据无法被查询到的字符;54.数据过滤模块12,用于基于与所述元数据获取请求对应的过滤条件,对所述查询结果进行过滤,以得到相应的所述目标mysql元数据。55.本技术实施例中,当获取到针对包含预设特殊字符的目标mysql元数据发起的元数据获取请求,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含预设特殊字符的查询结果;基于与所述元数据获取请求对应的过滤条件,对所述查询结果进行过滤,以得到相应的mysql元数据。可见,本技术中,当获取到针对包含预设特殊字符的目标mysql元数据发起的元数据获取请求,则在schemacrawler的查询阶段不使用过滤条件,这样一来,包含有预设特殊字符的元数据信息便可以出现在查询结果中,而不会在查询阶段便被剔除掉;在得到包含有预设特殊字符的查询结果之后,才进行相应的过滤处理,以得到可以包含预设特殊字符的mysql元数据。由此可见,本技术实施例能够在依然使用第三方开源插件schemacrawler的基础上,实现获取包含特殊字符的元数据信息的效果。56.在一种具体实施方式中,若所述元数据获取请求为针对包含所述预设特殊字符的表名发起的获取请求,则所述数据查询模块11,具体用于基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含所述预设特殊字符的表信息。57.在一种具体实施方式中,若所述元数据获取请求为针对包含所述预设特殊字符的目标数据表的字段信息发起的获取请求,则所述数据查询模块11,具体用于判断所述目标数据表的表名是否包含所述预设特殊字符,如果是,则基于在查询过程不使用过滤条件的查询原则,通过schemacrawler对mysql数据库进行查询,以得到相应的包含所述预设特殊字符的表信息及相应的字段信息。58.在一种具体实施方式中,所述装置还用于当所述目标数据表的表名不包含所述预设特殊字符,则利用预设的表名过滤条件,对所述查询结果进行过滤,以匹配到所述目标数据表的字段信息。59.在一种具体实施方式中,所述装置还用于通过预设的过滤条件配置接口,配置所述预设的表名过滤条件。60.图5是根据一示例性实施例示出的一种电子设备20的框图。如图5所示,该电子设备20可以包括:处理器21,存储器22。该电子设备20还可以包括多媒体组件23,输入/输出(i/o)接口24,以及通信组件25中的一者或多者。61.其中,处理器21用于通过执行保存在存储器22中的计算机程序,以完成上述基于schemacrawler的mysql元数据访问方法中的全部或部分步骤。存储器22用于存储各种类型的数据以支持在该电子设备20的操作,这些数据例如可以包括用于在该电子设备20上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器22可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件23可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器22或通过通信组件25发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口704为处理器21和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件25用于该电子设备20与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件25可以包括:wi-fi模块,蓝牙模块,nfc模块。62.在一示例性实施例中,电子设备20可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述基于schemacrawler的mysql元数据访问方法。63.在另一示例性实施例中,还提供了一种存储有计算机程序的计算机可读存储介质,该程序被处理器执行时实现上述基于schemacrawler的mysql元数据访问方法步骤。例如,该计算机可读存储介质可以为上述包括程序的存储器22,上述程序可由电子设备20的处理器21执行以完成上述基于schemacrawler的mysql元数据访问方法。64.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。65.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
:内所公知的任意其它形式的存储介质中。66.以上对本技术所提供的一种基于schemacrawler的mysql元数据访问方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1