一种表结构上下文的快速生成方法及系统技术方案

技术编号:26504714 阅读:37 留言:0更新日期:2020-11-27 15:32
本发明专利技术提供了一种表结构上下文的快速生成方法及系统,本发明专利技术通过在本地将数据库中表名和字段名存储在表结构文件中,在编写sql语句时,根据当前输入的内容,在表结构文件中查找到相应的表名和字段名,并在当前光标位置处快速生成上下文,由于数据库表结构文件保存在客户端本地,因此可以极快的速度生成上下文,结合在实际的数据库相关工作中,编写sql工作大量存在,因此可大大提高工作效率,缩短查询等待时间,且准确率高。

【技术实现步骤摘要】
一种表结构上下文的快速生成方法及系统
本专利技术涉及数据库表结构
,特别是一种表结构上下文的快速生成方法及系统。
技术介绍
目前各数据库客户端工具为了提高用户体验,增加软件人性化,在用户编写sql语句时会查询当前已连接的数据库表结构,以上下文的方式展示与当前的输入内容相关的表名或是字段名,帮助用户生成相关查询、修改sql语句。但是为了追求数据的100%准确,客户端工具需实时从数据库中进行查询,有一定的时间软件处于不响应的状态,需要用户等待。尤其是当前全国注重网络安全,各机房都设置有防火墙的情况下,查询速度较慢,等待的时间较长。
技术实现思路
本专利技术的目的是提供一种表结构上下文的快速生成方法及系统,旨在解决现有技术中编写sql语句上下文展示存在查询速度慢、等待时间长的问题,实现快速生成sql语句上下文,提高工作效率。为达到上述技术目的,本专利技术提供了一种表结构上下文的快速生成方法,所述方法包括以下操作:在数据库系统表中获取所有的表名和字段名,并存入以数据库名+用户名命名的本地文件中,形成表结构文件,并通过关键字分行存储表名和字段名;在编写sql语句时,根据当前数据库名以及用户名定位到对应的本地表结构文件中;根据当前sql的内容、from/where关键字位置以及光标位置判断当前输入的是表名还是字段名;如果当前输入的是表名,则在表结构文件中根据关键字查询所有表名,并根据光标当前输入的内容,对获取的各表表名进行过滤,将包含输入内容的表名输出到上下文中;如果当前输入的是字段名,根据from/where关键字找到当前编写sql的表名,在表结构文件中根据关键字查询该表名下的所有字段名,根据光标当前输入的内容,对获取的表中字段名进行过滤,将包含输入内容的字段名输出到上下文中。优选地,所述表结构文件的具体结构为:各表表名保存为一行,以关键字table开头;每个表的字段名保存成一行,前面以关键字表名开头。优选地,所述根据当前sql的内容、from/where关键字位置以及光标位置判断当前输入的是表名还是字段名具体为:获取当前编写sql语句中select/from/where关键字位置以及光标位置,如果光标位置在select和from之间或光标在where之后,则判断当前输入的是字段名;如果光标位置在from和where之间或光标位置在from之后且没有where关键字,则判断当前输入的是表名。优选地,当前输入的为表名时,所述在表结构文件中根据关键字查询所有表名中的关键字为table;当前输入的为字段名时,所述在表结构文件中根据关键字查询该表名下的所有字段名中的关键字为表名。本专利技术还提供了一种表结构上下文的快速生成系统,所述系统包括:表结构文件生成模块,用于在数据库系统表中获取所有的表名和字段名,并存入以数据库名+用户名命名的本地文件中,形成表结构文件,并通过关键字分行存储表名和字段名;表结构文件连接模块,用于在编写sql语句时,根据当前数据库名以及用户名定位到对应的本地表结构文件中;当前输入类型判断模块,用于根据当前sql的内容、from/where关键字位置以及光标位置判断当前输入的是表名还是字段名;输入上下文生成模块,用于如果当前输入的是表名,则在表结构文件中根据关键字查询所有表名,并根据光标当前输入的内容,对获取的各表表名进行过滤,将包含输入内容的表名输出到上下文中;如果当前输入的是字段名,根据from/where关键字找到当前编写sql的表名,在表结构文件中根据关键字查询该表名下的所有字段名,根据光标当前输入的内容,对获取的表中字段名进行过滤,将包含输入内容的字段名输出到上下文中。优选地,所述表结构文件的具体结构为:各表表名保存为一行,以关键字table开头;每个表的字段名保存成一行,前面以关键字表名开头。本专利技术还提供了一种表结构上下文的快速生成设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序,以实现所述的表结构上下文的快速生成方法。本专利技术还提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现所述的表结构上下文的快速生成方法。
技术实现思路
中提供的效果仅仅是实施例的效果,而不是专利技术所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:与现有技术相比,本专利技术通过在本地将数据库中表名和字段名存储在表结构文件中,在编写sql语句时,根据当前输入的内容,在表结构文件中查找到相应的表名和字段名,并在当前光标位置处快速生成上下文,由于数据库表结构文件保存在客户端本地,因此可以极快的速度生成上下文,结合在实际的数据库相关工作中,编写sql工作大量存在,因此可大大提高工作效率,缩短查询等待时间,且准确率高。附图说明图1为本专利技术实施例中所提供的一种表结构上下文的快速生成方法流程图;图2为本专利技术实施例中所提供的一种表结构上下文的快速生成系统框图。具体实施方式为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本专利技术省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本专利技术。下面结合附图对本专利技术实施例所提供的一种表结构上下文的快速生成方法及系统进行详细说明。如图1所示,本专利技术公开了一种表结构上下文的快速生成方法,所述方法包括以下操作:在数据库系统表中获取所有的表名和字段名,并存入以数据库名+用户名命名的本地文件中,形成表结构文件,并通过关键字分行存储表名和字段名;在编写sql语句时,根据当前数据库名以及用户名定位到对应的本地表结构文件中;根据当前sql的内容、from/where关键字位置以及光标位置判断当前输入的是表名还是字段名;如果当前输入的是表名,则在表结构文件中根据关键字查询所有表名,并根据光标当前输入的内容,对获取的各表表名进行过滤,将包含输入内容的表名输出到上下文中;如果当前输入的是字段名,根据from/where关键字找到当前编写sql的表名,在表结构文件中根据关键字查询该表名下的所有字段名,根据光标当前输入的内容,对获取的表中字段名进行过滤,将包含输入内容的字段名输出到上下文中。由于在实际情况下各业务系统的生产数据库表结构变化不是很频繁,即使表结构有所变化也是很小范围的变化,几乎没有数据库中表大量变化的情况,因此在本专利技术实施例中将表结构保存到数据库客户端电脑中,在编写sql语句时软件可以极快速度生成上下文。在软件界本文档来自技高网
...

【技术保护点】
1.一种表结构上下文的快速生成方法,其特征在于,所述方法包括以下操作:/n在数据库系统表中获取所有的表名和字段名,并存入以数据库名+用户名命名的本地文件中,形成表结构文件,并通过关键字分行存储表名和字段名;/n在编写sql语句时,根据当前数据库名以及用户名定位到对应的本地表结构文件中;/n根据当前sql的内容、from/where关键字位置以及光标位置判断当前输入的是表名还是字段名;/n如果当前输入的是表名,则在表结构文件中根据关键字查询所有表名,并根据光标当前输入的内容,对获取的各表表名进行过滤,将包含输入内容的表名输出到上下文中;如果当前输入的是字段名,根据from/where关键字找到当前编写sql的表名,在表结构文件中根据关键字查询该表名下的所有字段名,根据光标当前输入的内容,对获取的表中字段名进行过滤,将包含输入内容的字段名输出到上下文中。/n

【技术特征摘要】
1.一种表结构上下文的快速生成方法,其特征在于,所述方法包括以下操作:
在数据库系统表中获取所有的表名和字段名,并存入以数据库名+用户名命名的本地文件中,形成表结构文件,并通过关键字分行存储表名和字段名;
在编写sql语句时,根据当前数据库名以及用户名定位到对应的本地表结构文件中;
根据当前sql的内容、from/where关键字位置以及光标位置判断当前输入的是表名还是字段名;
如果当前输入的是表名,则在表结构文件中根据关键字查询所有表名,并根据光标当前输入的内容,对获取的各表表名进行过滤,将包含输入内容的表名输出到上下文中;如果当前输入的是字段名,根据from/where关键字找到当前编写sql的表名,在表结构文件中根据关键字查询该表名下的所有字段名,根据光标当前输入的内容,对获取的表中字段名进行过滤,将包含输入内容的字段名输出到上下文中。


2.根据权利要求1所述的一种表结构上下文的快速生成方法,其特征在于,所述表结构文件的具体结构为:
各表表名保存为一行,以关键字table开头;
每个表的字段名保存成一行,前面以关键字表名开头。


3.根据权利要求1所述的一种表结构上下文的快速生成方法,其特征在于,所述根据当前sql的内容、from/where关键字位置以及光标位置判断当前输入的是表名还是字段名具体为:
获取当前编写sql语句中select/from/where关键字位置以及光标位置,如果光标位置在select和from之间或光标在where之后,则判断当前输入的是字段名;如果光标位置在from和where之间或光标位置在from之后且没有where关键字,则判断当前输入的是表名。


4.根据权利要求1所述的一种表结构上下文的快速生成方法,其特征在于,当前输入的为表名时,所述在表结构文件中根据关键字查询所有...

【专利技术属性】
技术研发人员:朱滕波
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1