辅助生成SQL代码的方法、装置、设备及计算机存储介质与流程

文档序号:17586944发布日期:2019-05-03 21:24阅读:112来源:国知局
本发明涉及计算机
技术领域
:,尤其涉及一种辅助生成sql代码的方法、辅助生成sql代码的装置、辅助生成sql代码的设备及计算机存储介质。
背景技术
::在数据库维护和开发过程中,需要频繁查询表结构、类型、字段名,同时经常需要重复输入一些常用的sql语句,尤其是其中一些sql语句的格式比较复杂,重复工作量多并且容易出错。随着数据库系统规模的急剧增长和软件维护工作需求的扩大,传统的人工重复输入格式复杂的sql语句的工作方式导致的效率低下且准确性低的问题日益突出,亟待解决,而现有技术中尚未出现能根据用户的需求自动或半自动生成sql代码的技术。上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。技术实现要素:本发明的主要目的在于提供一种辅助生成sql代码的方法、辅助生成sql代码的装置、辅助生成sql代码的设备和计算机存储介质,旨在解决现有技术中在重复输入一些格式复杂的sql语句过程中容易出错的技术问题。为实现上述目的,本发明提供一种辅助生成sql代码的方法,所述辅助生成sql代码的方法包括如下步骤:在接收到用户输入的数据库表名时,显示所述数据库表名对应的数据库表的字段名;在检测到通过所述字段名触发的选定操作时,根据所述选定操作对应的所述字段名和所述用户选定的sql操作语句生成sql代码;显示生成的所述sql代码。优选地,所述在检测到通过所述字段名触发的选定操作时,根据所述选定操作对应的所述字段名和所述用户选定的sql操作语句生成sql代码的步骤包括:获取所述用户选定的sql操作语句对应的代码模板,其中,所述代码模板包括所述sql操作语句、待替换的数据库表名和待替换的字段名;将所述代码模板中的所述待替换数据库表名替换为所述用户输入的数据库表名,并将所述待替换的字段名替换成所述字段名,以生成sql代码。优选地,所述显示所述sql代码的步骤之后还包括:当接收到字段赋值的指令时,显示所述字段名,以供所述用户输入所述字段名对应的字段值;将所述用户输入的字段值插入到所述sql代码中。优选地,所述显示所述sql代码的步骤之后还包括:当接收到字段赋值的指令时,获取赋值文件中的数值;将所述数值插入到所述sql代码中。优选地,所述在接收到用户输入的数据库表名时,显示所述数据库表名对应的数据库表的字段名的步骤之前还包括:根据配置信息获取数据库的表文件;解析所述表文件,以获取所述数据库中的数据库表名和与所述数据库表名对应的字段名;将解析得到的所述数据库表名和与所述数据库表名对应的字段名存储在第一数据表中,其中,在接收到用户输入的数据库表名时从所述第一数据表中获取并显示所述数据库表名对应的字段名。优选地,所述将解析得到的所述数据库表名和与所述数据库表名对应的字段名存储在第一数据表中的步骤之后还包括:定时获取数据库的表文件;解析所述数据库表文件,以获取所述数据库中的最新的数据库表名和与所述最新的数据库表名对应的字段名;将解析得到的所述最新的数据库表名和与所述最新的数据库表名对应的字段名存储在第二数据表中,并采用所述第二数据表更新所述第一数据表。优选地,所述将解析得到的所述数据库表名和与所述数据库表名对应的字段名存储在第一数据表中的步骤之后还包括:定时获取最新的数据库的表文件;确定所述最新的数据库的表文件中删除的字段名,将所述删除的字段名从所述第一数据表中删除;确定所述最新的数据库的表文件中增加的字段名,将所述增加的字段名插入到所述第一数据表中。此外,为实现上述目的,本发明还提供所述辅助生成sql代码的装置,该装置包括:第一显示模块,用于在接收到用户输入的数据库表名时,显示所述数据库表名对应的数据库表的字段名;代码生成模块,用于在检测到通过所述字段名触发的选定操作时,根据所述选定操作对应的所述字段名和所述用户选定的sql操作语句生成sql代码;第二显示模块,用于显示生成的所述sql代码。此外,为实现上述目的,本发明还提供所述辅助生成sql代码的设备,该设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的辅助生成sql代码的处理程序,所述辅助生成sql代码的处理程序被所述处理器执行时实现如上所述的辅助生成sql代码的方法的步骤。此外,为实现上述目的,本发明还提出一种计算机存储介质,其特征在于,所述计算机存储介质上存储有辅助生成sql代码的处理程序,所述辅助生成sql代码的处理程序被处理器执行时实现如上所述的辅助生成sql代码的方法的步骤。本发明实施例提出的一种辅助生成sql代码的方法、辅助生成sql代码装置、辅助生成sql代码设备和计算机存储介质,在接收到用户输入的数据库表名时,显示所述数据库表名对应的数据库表的字段名,在检测到通过所述字段名触发的选定操作时,根据所述选定操作对应的所述字段名和所述用户选定的sql操作语句生成sql代码,显示生成的所述sql代码,本发明通过根据用户选定的数据库表的字段名和sql操作语句自动生成sql代码,从而解决现有技术中在重复输入一些格式复杂的sql语句过程中容易出错的技术问题。附图说明图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图;图2为本发明辅助生成sql方法第一实施例的流程示意图;图3为本发明辅助生成sql方法第二实施例的流程示意图;图4为本发明辅助生成sql方法第三实施例的流程示意图;图5为本发明辅助生成sql装置一实施例的功能模块示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例的主要解决方案是:在接收到用户输入的数据库表名时,显示所述数据库表名对应的数据库表的字段名,在检测到通过所述字段名触发的选定操作时,根据所述选定操作对应的所述字段名和所述用户选定的sql操作语句生成sql代码,显示生成的所述sql代码。传统的人工重复输入格式复杂的sql语句的工作方式导致的效率低下且准确性低的问题日益突出,亟待解决,而现有技术中尚未出现能根据用户的需求自动或半自动生成sql代码的技术。本发明提供一种解决方案,通过根据用户选定的数据库表的字段名和sql操作语句自动生成sql代码,从而解决现有技术中在重复输入一些格式复杂的sql语句过程中容易出错的技术问题。如图1所示,图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图。本发明实施例终端为辅助生成sql代码的设备。如图1所示,图1是本发明实施例方案涉及的硬件运行环境的服务器(又叫事件处理设备,其中,事件处理设备可以是由单独的事件处理装置构成,也可以是由其他装置与事件处理装置组合形成)结构示意图。本发明实施例服务器指一个管理资源并为用户提供服务的计算机,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。相对于普通pc(personalcomputer)个人计算机来说,服务器在稳定性、安全性、性能等方面都要求较高;如图1所示,该服务器可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),网络接口1004,用户接口1003,存储器1005,通信总线1002、芯片组、磁盘系统、网络等硬件等。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真wireless-fidelity,wifi接口)。存储器1005可以是高速随机存取存储器(randomaccessmemory,ram),也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。可选地,服务器还可以包括摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块;输入单元,比显示屏,触摸屏;网络接口可选除无线接口中除wifi外,蓝牙、探针、3g/4g/5g(前面的数字表示的是蜂窝移动通信网络的代数。就是表示是第几代的网络。英文字母g表示generation)联网基站设备等等。本领域技术人员可以理解,图1中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,该计算机软件产品存储在一个存储介质(存储介质:又叫计算机存储介质、计算机介质、可读介质、可读存储介质、计算机存储介质或者直接叫介质等,如ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及计算机程序。在图1所示的服务器中,网络接口1004主要用于连接后台数据库,与后台数据库进行数据通信;用户接口1003主要用于连接客户端(客户端,又叫用户端或终端,本发明实施例终端可以固定终端,也可以是移动终端,在此不再赘述),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的计算机程序,并执行本发明以下实施例提供的事件处理方法中的步骤。参照图2,本发明第一实施例提供一种辅助生成sql代码的方法,所述方法包括:步骤s10,在接收到用户输入的数据库表名时,显示所述数据库表名对应的数据库表的字段名。sql代码是由结构化查询语言组成的代码,用于数据库数据的存取、查询和其他管理操作。具体而言,sql代码中需要确定要操作的数据库的字段名,可以根据用户输入的数据库表名来确定。当接收到用户输入的数据库表名时,根据数据库表名找到对应的数据库表文件,通过解析数据库表文件获得对应的数据库中的字段名并显示,供用户进行进一步的选择。步骤s20,在检测到通过所述字段名触发的选定操作时,根据所述选定操作对应的所述字段名和所述用户选定的sql操作语句生成sql代码。用户在显示的数据库表的字段名中选定了目标字段名后,还需要选定对应的sql操作语句。sql操作语句为常用的基本功能对应的sql语句中的关键字,例如选择功能的select、插入功能的insert、更新功能的update等。在得到了用户选定的目标字段名和sql操作语句后,生成sql代码的基本过程为:获取用户选定的sql操作语句对应的代码模板,其中,代码模板包括sql操作语句、待替换的数据库表名和待替换的字段名,将代码模板中的待替换数据库表名替换为用户输入的数据库表名,并将待替换的字段名替换成用户选定的目标字段名,以生成sql代码。例如当用户选定的sql操作语句为““update”,用户输入的数据库表名为“report.aitbb04”,用户选定的目标字段名为“cbal”,根据用户选定的sql操作语句“update”查找到对应的代码模板为“update#tablenameset#column=()where”。将代码模板中的待替换的数据库表名和待替换的字段名分别替换为用户输入的数据库表名和用户选定的目标字段名之后生成的sql代码为“updatereport.aitbb04setcbal=()where””。需要说明的是,用户需要基于该生成的sql代码继续完善,才能生出最终可执行的sql代码,需要进行的完善包括为在上述代码的括号中填入字段的赋值,以及在上述代码最后的wherr字句后填入对应的执行条件。进一步地,为了满足不同用户的使用需求和不同的使用场景,可接收用户定义个性化的sql操作语句对应的代码模板。需要说明的是,用户需要根据提示遵循和预置的代码模板一样的规则定义个性化的sql操作语句对应的代码模板,规则包括代码模板中待替换的内容需要前置#号、待用户进一步编辑的内容用双括号标识等。步骤s30,显示生成的所述sql代码。将根据用户选定的字段名和sql操作语句生成的sql代码进行显示,用户可以选定并复制显示的代码到目标位置进行进一步的编辑,也可以对显示的代码进行编辑后再复制使用。接下来以实现本实施例所提供的辅助生成sql代码方法的工具进行具体的说明。工具提供交互界面,该交互界面有三个主区域为数据表结构展示区域、自动生成代码展示区域和自助编辑区域,此外还包括sql操作语句选择下拉列表、数据库库名输入框和数据表选择下拉菜单等。数据表结构展示区域用于显示被选定的数据表结构内容,包括数据表中字段名和对应的字段类型。自动生成代码展示区域用于显示sql操作对应的自动生成的代码,该代码中包含sql操作语句关键字、操作字段名等。自助编辑区域用于编辑自动生成的代码,以形成最终可用的完整的sql代码。用户使用该工具辅助生成sql代码的步骤为:1、用户先在数据库库名输入框中输入要引用的数据库名,然后在包含该数据库所有数据表名的数据表选择下拉菜单中选择要引用的数据表名,此时数据表结构展示区域显示该数据包的信息,包括数据表中字段名和字段类型。2、用户在sql操作语句选择下拉列表中选择sql操作语句,并且在数据表结构展示区域选择要操作的字段,此时根据选择的sql操作语句和操作字段自动生成的代码显示在自动生成代码展示区域内,同时被选择的字段名被自动复制并且可以直接粘贴使用。3、用户点击交互界面上的“获取结果”按钮将在上个步骤中自动生成的代码复制到自助编辑区域,补充完善自动生成代码中欠缺的部分。4、用户可将在自助编辑区域内显示的完整的代码复制到其他的任何需要用代码的软件中,例如代码编辑软件和数据库控制界面等。进一步地,工具交互界面还包括代码格式设置区域,当工具接收到用户在代码格式设置区域发出的设置代码格式的指令时,将显示在自动代码展示区域内的sql代码按照指令中的代码格式进行设置并显示。其中,可设置的格式包括分行格式化输出或者不分行输出等。进一步地,当用户在数据表结构展示区域选择要操作的字段时,可以一次选择多个字段名时,此时对应生成多段sql代码,其中,多段sql代码均包含用户选定的sql操作语句。在本实施例中,通过根据用户选定的数据库表的字段名和sql操作语句自动生成sql代码,从而解决现有技术中在重复输入一些格式复杂的sql语句过程中容易出错的技术问题。进一步的,参照图3,本发明第二实施例基于第一实施例提供一种辅助生成sql代码的方法,本实施例在步骤s30之后还包括:步骤s40,当接收到字段赋值的指令时,显示所述字段名,以供所述用户输入所述字段名对应的字段值。有些sql操作语句在向数据表插入新的数据时,需要给多个指定的字段一一进行赋值,此时以可视化操作界面来实现对用户赋值操作的简化。例如用户需要向数据表report.aitbb04插入的新数据中,需要为字段“ac、ccy、ccal”字段分别赋值“hyguy、guyg、iuhiu”。用户先选择sql操作语句为insert语句,再选定“ac、ccy、ccal”字段,接着点击工具的交互界面上的“insertvalue”按钮,此时会弹出一个界面,弹出的界面上以列表显示之前被用户选定的“ac、ccy、ccal”字段,每一行会显示一个被选定字段的字段名、字段类型和字段值这三个区域,用户在字段值区域对应输入对该字段的赋值,确认无误后点击“确认”按钮,在自助编辑区域内会显示包含输入的字段赋值的sql语句代码为:insertinforeport.aitbb04(ac,ccy,ccal)values(‘hyguy’,‘guyg’,‘iuhiu’)。步骤s50,将所述用户输入的字段值插入到所述sql代码中。进一步地,工具可以支持导入文件的方式,以实现同时对表的多个字段进行批量输入值的操作,即当接收到字段赋值的指令时,获取赋值文件中的数值,将所述数值插入到所述sql代码中,具体包括以下步骤:在点击“insertvalue”弹出的界面上点击“导入文件”按钮,选择待导入的文件,其中,待导入的文件中包含多个数值;选中文件后,点击确认导入文件;工具对导入文件进行分析和处理:当导入文件中仅包含多个数值时,按数值的顺序将各个数值赋值给表中的各个字段;当导入文件中包含字段名和对应的取值时,对表中匹配的字段名进行赋值。在本实施例中,通过将字段名显示并接收用户输入的赋值,简化了用户给数据库字段名赋值的操作,提高了效率。进一步的,参照图4,本发明第三实施例基于第一实施例提供一种辅助生成sql代码的方法,本实施例在步骤s10之前还包括:步骤s60,根据配置信息获取数据库的表文件。配置信息包括数据库名和对应的连接方式。当根据配置信息与数据库建立了通信连接后,可以通过对数据库的访问获取数据库的表文件。步骤s70,解析所述表文件,以获取所述数据库中的数据库表名和与所述数据库表名对应的字段名。步骤s80,将解析得到的所述数据库表名和与所述数据库表名对应的字段名存储在第一数据表中,其中,在接收到用户输入的数据库表名时从所述第一数据表中获取并显示所述数据库表名对应的字段名。进一步地,工具在使用过程中,当和第一数据表相关联的数据库表文件有更新时,工具需要根据更新的数据库表文件更新第一数据表。具体而言,工具可以定时获取数据库的表文件,解析更新的数据库表文件,以获取数据库中的最新的数据库表名和与最新的数据库表名对应的字段名,并将解析得到的最新的数据库表名和与最新的数据库表名对应的字段名存储在第二数据表中,采用第二数据表更新所述第一数据表。更进一步地,当数据库表文件比较大而导致完全解析的开销很大时,为了提高工具效率,工具在定时获取到最新的数据库的表文件时,可以确定最新的数据库的表文件中删除的字段名,将删除的字段名从第一数据表中删除,同时确定最新的数据库的表文件中增加的字段名,将增加的字段名插入到所述第一数据表中。获取最新的数据库的表文件中删除和增加的字段名有多种方式:可以在数据库中增加监控模块,负责监控当前被工具使用的数据库表文件的修改记录,修改记录包括增加和删除的自动,工具实时接收更新的修改记录;或者比较最新的数据库表文件和过时的数据库表文件,只对变化的部分进行增量解析,以此发现删除和增加的字段名,其中,在识别数据库表文件中的字段名相关字符串的基础上进行新旧数据库表文件的对比和增量解析。在本实施例中,通过根据配置信息获取并解析数据库的表文件、将解析得到的数据库表文件的字段名存储在第一数据表中,保证了当接收到用户输入的数据库表名时,通过访问第一数据表能快速地显示数据库表文件的字段名。本发明还提供一种辅助生成sql代码的装置,该装置包括:第一显示模块10,用于在接收到用户输入的数据库表名时,显示所述数据库表名对应的数据库表的字段名;代码生成模块20,用于在检测到通过所述字段名触发的选定操作时,根据所述选定操作对应的所述字段名和所述用户选定的sql操作语句生成sql代码;第二显示模块30,用于显示生成的所述sql代码。可选地,所述代码生成模块20包括:获取单元,用于获取所述用户选定的sql操作语句对应的代码模板,其中,所述代码模板包括所述sql操作语句、待替换的数据库表名和待替换的字段名;替换单元,用于将所述代码模板中的所述待替换数据库表名替换为所述用户输入的数据库表名,并将所述待替换的字段名替换成所述字段名,以生成sql代码。可选地,所述辅助生成sql代码装置还包括:第三显示模块,用于当接收到字段赋值的指令时,显示所述字段名,以供所述用户输入所述字段名对应的字段值;所述代码生成模块20还用于将所述用户输入的字段值插入到所述sql代码中。可选地,所述辅助生成sql代码装置还包括:获取模块,用于当接收到字段赋值的指令时,获取赋值文件中的数值;所述代码生成模块20还用于将所述数值插入到所述sql代码中。可选地,所述辅助生成sql代码装置还包括:获取模块,用于根据配置信息获取数据库的表文件;解析模块,用于解析所述表文件,以获取所述数据库中的数据库表名和与所述数据库表名对应的字段名;存储模块,用于将解析得到的所述数据库表名和与所述数据库表名对应的字段名存储在第一数据表中,其中,在接收到用户输入的数据库表名时从所述第一数据表中获取并显示所述数据库表名对应的字段名。可选地,所述辅助生成sql代码装置还包括:获取模块,用于定时获取数据库的表文件;解析模块,用于解析所述数据库表文件,以获取所述数据库中的最新的数据库表名和与所述最新的数据库表名对应的字段名;存储模块,用于将解析得到的所述最新的数据库表名和与所述最新的数据库表名对应的字段名存储在第二数据表中,并采用所述第二数据表更新所述第一数据表。可选地,所述辅助生成sql代码装置还包括:获取模块,用于定时获取最新的数据库的表文件;数据表维护模块,用于确定所述最新的数据库的表文件中删除的字段名,将所述删除的字段名从所述第一数据表中删除;数据表维护模块还用于确定所述最新的数据库的表文件中增加的字段名,将所述增加的字段名插入到所述第一数据表中。本发明还提供一种辅助生成sql代码的设备,该设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的辅助生成sql代码处理程序,所述辅助生成sql代码处理程序被所述处理器执行时实现所述的辅助生成sql代码的方法的步骤。此外,本发明实施例还提出一种计算机存储介质,所述计算机存储介质上存储有辅助生成sql代码的处理程序,所述辅助生成sql代码的处理程序被处理器执行时实现所述的辅助生成sql代码的方法的步骤。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1