具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
现有操作数据库的方法主要是由技术人员先通过数据库软件创建一个数据库客户端实例,并在数据库客户端实例中手动键入数据库命令。或者,复制一段数据库命令至数据库客户端实例。由于上述两种方式都需要手动创建数据库客户端实例,且无论是手动键入还是复制数据库命令均耗费较长时间并容易出错,从而导致对数据库操作时不太方便,数据库命令的执行效率较低。
针对现有技术中的问题,本发明实施例提供了一种操作数据库的方法。本实施例及后续实施例所提供的一种操作数据库的方法,适用于安装任一类型操作系统的终端。其中,适用的操作系统可以为Windows操作系统、Linux操作系统或OS X操作系统,本实施例对此不作具体限定。参见图1,本实施例提供的方法流程包括:101、基于显示的文本内容,当检测到拓展程序启动时,获取用户要执行的目标文本内容;102、根据目标文本内容,向数据库服务器发送数据库命令行;103、获取数据库服务器的返回结果;104、在输出窗口中显示返回结果。
其中,显示的文本内容至少包含数据库命令行,本实施例及后续实施例对此不作具体限定。数据库服务器可以为Redis服务器、SSDB服务器或Hbase服务器等,本实施例及后续实施例对此不作具体限定。
本发明实施例提供的方法,通过基于显示的文本内容,当检测到拓展程序启动时,获取用户要执行的目标文本内容。根据目标文本内容,向数据库服务器发送数据库命令行。获取数据库服务器的返回结果。在输出窗口中显示返回结果。由于可基于启动的拓展程序,根据打开的文本文件中显示的文本内容,来执行对应的数据库命令,而不用复制或手动键入数据库命令,从而节省了数据库命令执行时的命令输入时间,进而提高了数据库命令的执行效率。
另外,由于在预设文本编辑器中可打开多个文本文件,当用户需要执行大量数据库命令时,可将数据库命令拆分成多个文本文件,通过打开多个文本文件分别执行对应的数据库命令,从而能够便于用户对数据库命令的执行流程进行管理。
作为一种可选实施例,获取用户要执行的目标文本内容之前,还包括:
检测用户对文本文件的打开指令;
当检测到打开指令时,通过预设文本编辑器,显示用户打开的目标文本文件中的文本内容。
其中,预设文本编辑器可以为程序开发所使用的开源文本编辑器,如VisualStudio Code(简称VS Code)、Sublime Text、Atom、VIM或Notepad++等,本实施例及后续实施例对此不作具体限定。
作为一种可选实施例,获取用户要执行的目标文本内容之前,还包括:
当检测到用户对预设快捷键的输入指令时,启动拓展程序;
或者,当检测到用户对右键菜单中预设选项的选中指令时,启动拓展程序。
作为一种可选实施例,获取用户要执行的目标文本内容,包括:
检测用户对文本内容的选中指令;
当检测到选中指令时,根据选中指令所对应的文本选中范围,获取用户要执行的目标文本内容。
作为一种可选实施例,检测用户对文本内容的选中指令之后,还包括:
当未检测到选中指令时,获取文本内容,并将文本内容作为用户要执行的目标文本内容。
作为一种可选实施例,根据目标文本内容,向数据库服务器发送数据库命令行之前,还包括:
创建数据库客户端实例;
通过数据库客户端实例,连接数据库服务器。
作为一种可选实施例,通过数据库客户端实例,连接数据库服务器,包括:
获取文本内容中的预设连接地址;
通过数据库客户端实例,连接预设连接地址对应的数据库服务器。
作为一种可选实施例,获取文本内容中的预设连接地址,包括:
对文本内容中的每一行内容进行检测;
当在任一行内容中检测到第一预设字符时,获取任一行内容中第一预设字符后面的字符串,将字符串作为预设连接地址。
作为一种可选实施例,对文本内容中的每一行内容进行检测之后,包括:
当在每一行内容中未检测到第一预设字符或第一预设字符后面为空字符串时,通知用户无法连接数据库服务器。
作为一种可选实施例,根据目标文本内容,向数据库服务器发送数据库命令行,包括:
根据目标文本内容中的第二预设字符,将目标文本内容拆分成数据库命令行集合;
基于数据库命令行集合,向数据库服务器发送数据库命令及参数。
作为一种可选实施例,基于数据库命令行集合,向数据库服务器发送数据库命令行,包括:
对于数据库命令行集合中任一数据库命令行,当检测到任一数据库命令行不为空且不包含第一预设字符时,获取任一数据库命令行对应的数据库命令及参数。
向数据库服务器发送任一数据库命令行对应的数据库命令及参数。
作为一种可选实施例,在输出窗口中显示返回结果,包括:
向输出窗口写入返回结果;
通过调用输出窗口实例的显示方法,在输出窗口中显示返回结果。
作为一种可选实施例,向输出窗口写入返回结果,包括:
获取返回结果的数据类型;
当返回结果的数据类型为数字时,向输出窗口写入返回数字对应的数据类型及返回的数字;
当返回结果的数据类型为字符串时,向输出窗口写入返回的字符串;
当返回结果的数据类型为空对象时,向输出窗口写入预设关键字;
当返回结果的数据类型为对象时,将返回的对象转换为字符串,向输出窗口写入转换后的字符串。
作为一种可选实施例,预设文本编辑器为VS Code,数据库服务器为Redis服务器,获取用户要执行的目标文本内容,包括:
调用vscode.window.activeTextEditor.selection.isEmpty接口,检测用户是否对文本内容进行选中;
基于接口返回的数值,当检测到用户对文本内容进行选中时,以vscode.window.activeTextEditor.selection为参数,调用vscode.window.activeTextEditor.document.getText方法获取用户要执行的目标文本内容;
当检测到用户未对文本内容进行选中时,调用vscode.window.activeTextEditor.document.getText方法,获取文本内容,并将文本内容作为用户要执行的目标文本内容。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
基于上述图1对应实施例中的内容,本发明实施例提供了一种操作数据库的方法。为了便于对方案进行阐述,本实施例以预设文本编辑器为VS Code,数据库为Redis为例,来对数据库命令执行方法的过程进行说明。其中,VS Code是一个由微软开发且同时支持Windows、Linux及OS X操作系统的开源文本编辑器,VS Code支持扩展程序并内置了扩展程序管理功能。Redis是一个开源、支持网络且基于内存的键值对存储数据库。
参见图2,本实施例提供的方法流程包括:201、检测用户对文本文件的打开指令;202、当检测到打开指令时,通过VS Code显示用户打开的目标文本文件中的文本内容;203、基于显示的文本内容,当检测到拓展程序启动时,获取用户要执行的目标文本内容;204、根据目标文本内容,向Redis服务器发送数据库命令行;205、获取Redis服务器的返回结果;206、在VS Code的输出窗口中显示返回结果。
其中,201、检测用户对文本文件的打开指令。
由于本实施例提供的方法主要是基于在VS Code中打开的文本文件,实现执行文本文件中的数据库命令,从而在执行本步骤之前,用户(即相关程序开发人员)可以根据实际需求预先编辑包含数据库命令行的文本文件,本实施例对此不作具体限定。其中,用户根据实际程序开发需求,可编辑多个包含数据库命令行的文本文件存储在预设目录中。
在执行本步骤时,可检测用户对文本文件的打开指令。相应地,用户可在预设目录中选中一个包含数据库命令行的文本文件,并通过VS Code打开该文本文件,即输入打开指令。
其中,202、当检测到打开指令时,通过VS Code,显示用户打开的目标文本文件中的文本内容。
本步骤主要是通过VS Code打开文本文件的过程,打开的文本文件可作为目标文本文件。其中,目标文本文件中的文本内容可包含数据库命令行、Redis服务器的地址及连接端口等,本实施例不对目标文本文件包含的内容作具体限定。
需要说明的是,本步骤的后续步骤主要是将打开的文本文件作为目标文本文件,基于目标文本文件实现执行数据库命令的过程。由于文本编辑器通常支持同时打开多个文本文件,从而在本次打开目标文本文件之前,用户可以按照本步骤及上述步骤201打开多个其它的文本文件,本实施例对此不作具体限定。相应地,用户后续除了可对本次打开的目标文本文件进行操作以实现执行数据库命令之外,还可以对之前打开目标文本文件进行操作以实现执行数据库命令,本实施例对此不作具体限定。
例如,用户本次打开了目标文本文件3,而用户之前还打开了目标文本文件1及目标文本文件2。用户后续除了可对目标文本文件3进行操作,以执行目标文本文件3中的数据库命令之外,还可以对目标文本文件1或目标文本文件2进行操作,从而分别执行目标文本文件1或目标文本文件2中的数据库命令。
基于上述内容,需要说明的是,本实施例的后续步骤仅对执行文本文件中数据库命令的过程进行说明。然而,具体执行的是本次打开的目标文本文件中的数据库命令,还是执行用户之前打开的目标文本文件中的数据库命令,本实施例对此不作具体限定。实际实施中,具体执行哪个文本文件以VS Code显示的焦点文件为主,显示的焦点文件即为目标文本文件。基于方案的完整性且为了便于说明,本实施例的后续步骤主要以本次打开的目标文本文件为例,对数据库命令的执行过程进行说明。
其中,203、基于显示的文本内容,当检测到拓展程序启动时,获取用户要执行的目标文本内容。
由于本实施例主要是在VS Code中实现数据库命令的执行,即对VS Code的功能进行了拓展,执行相应的拓展程序以实现执行数据库命令,从而在执行本步骤之前还可以启动拓展程序。本实施例不对启动拓展程序的方式作具体限定,包括但不限于:当检测到用户对预设快捷键的输入指令时,启动拓展程序;或者,当检测到用户对右键菜单中预设选项的选中指令时,启动拓展程序。
例如,用户可通过键盘键入“ctrl+enter”以启动拓展程序。或者,用户还可以通过点击鼠标右键,在右键菜单中点击“redisCli”选项以启动拓展程序。其中,“ctrl+enter”即为预设快捷键,可由用户自行设置。“redisCli”为拓展程序名称,同样可由用户自行设置,本实施例对此不作具体限定。
具体地,在启动拓展程序之前,用户可利用VS Code官方提供的Yeoman VS CodeExtension generator工具,生成一份骨架代码。向骨架代码的package.json文件中contributes项中加入以下代码,以支持通过快捷键或右键菜单选项启动拓展程序:
该过程通过VS Code的内置方案,向项目配置文件package.json中加入对应的配置。当VS Code启动时,拓展的package.json文件便会被读取,并且VS Code还会对package.json文件中的contributes项的内容做处理。
上述配置完成后,通过向骨架代码的extension.ts文件中加入拓展程序的具体实现代码,从而实现通过点击右键菜单选项或使用快捷键运行扩展程序。相应地,本步骤及后续步骤主要是拓展程序的具体实现过程。需要说明的是,由于后续实现过程需要调用VSCode模块和NodeRedis模块的相关接口,从而拓展程序在启动后可导入VS Code模块和NodeRedis模块,本实施对此不作具体限定。其中,NodeRedis为Node环境下的Redis客户端库。
基于上述过程,拓展程序在启动后,由于VS Code显示的文本内容主要为数据库命令行,从而用户在启动拓展程序之前可指定显示的文本内容中哪些数据库命令行需要执行。相应地,本实施例不对获取用户要执行的目标文本内容的方式作具体限定,包括但不限于:检测用户对文本内容的选中指令;当检测到选中指令时,根据选中指令所对应的文本选中范围,获取用户要执行的目标文本内容。
例如,用户可通过鼠标指针对显示的文本内容进行选中,从而终端可根据用户选中的文本范围,获取用户要执行的目标文本内容。
由于用户在启动拓展程序之后,用户之前可能并未选中任何显示的文本内容,此时可将所有文本内容作为用户要执行的目标文本内容,本实施例对此不作具体限定。
基于拓展程序导入的VS Code模块,上述获取目标文本内容的过程,可通过调用vscode.window.activeTextEditor.selection.isEmpty接口,判断当前显示的文本内容是否有被选中的内容。当检测到被选中的内容时,可通过调用vscode.window.activeTextEditor.document.getText()方法,该方法参数为vscode.window.activeTextEditor.selection,以获取选中的目标文本内容。当没有检测到被选中的内容时,可通过调用vscode.window.activeTextEditor.document.getText()方法,获取显示的所有文本内容,并作为用户要执行的目标文本内容。
其中,204、根据目标文本内容,向Redis服务器发送数据库命令行。
由于后续步骤需要执行数据库命令,而在执行数据库命令之前需要与Redis服务器进行连接,从而在执行本步骤之前若检测到没有连接至Redis服务器,可先与Redis服务器进行连接。本实施例不对连接Redis服务器的方式作具体限定,包括但不限于:创建Redis客户端实例;通过Redis客户端实例,连接Redis服务器。
在创建Redis客户端实例时,可通过调用NodeRedis模块提供的createClient接口,创建一个Redis客户端实例,本实施例对此不作具体限定。由于在连接Redis服务器之前,需要先知道Redis服务器的地址,从而可先获取Redis服务器的地址。相应地,本实施例不对通过Redis客户端实例,连接Redis服务器的方式作具体限定,包括但不限于:获取文本内容中的预设连接地址;通过Redis客户端实例,连接预设连接地址对应的Redis服务器。其中,预设连接地址即为Redis服务器的地址。
由于用户在编辑文本文件时,可在文本文件中置入要连接的Redis服务器对应的地址,从而可在显示的文本内容中检测出预设连接地址。关于获取文本内容中的预设连接地址的方式,本实施例对此不作具体限定,包括但不限于:对文本内容中的每一行内容进行检测;当在任一行内容中检测到第一预设字符时,获取任一行内容中第一预设字符后面的字符串,将字符串作为预设连接地址。
用户在编辑文本文件中的文本内容时,对于每一行内容,可预先约定第一预设字符后面的字符串为预设连接地址,本实施例对此不作具体限定。其中,第一预设字符可根据用户习惯自行设置,本实施例对此不作具体限定。预设连接地址可包括Redis主机地址、端口号及密码等信息,本实施例不对预设连接地址的内容作具体限定。
例如,以用户要执行的目标文本内容为显示的所有文本内容为例。图3为VS Code显示的文本内容,也即为用户要执行的目标文本内容。在图3中,第一预设字符为“#!”。通过对每一行内容进行检测,可确定第一行内容中包含第一预设字符“#!”。通过调用vscode.window.activeTextEditor.document.getText()接口,可获取第一行内容。过滤掉第一行内容中的“#!”,可获取“#!”后面的字符串“Redis://127.0.0.1:6379”,并作为Redis服务器的预设连接地址。
由于存在找不到预设连接地址的可能性,从而对文本内容中的每一行内容进行检测之后,当在每一行内容中未检测到第一预设字符或第一预设字符后面为空字符串时,可通知用户无法连接Redis服务器,本实施例对此不作具体限定。具体地,在向用户通知时,可通过调用vscode.window.showErrorMessage()方法,向用户报告预设连接地址URL(Uniform Resoure Locator,统一资源定位器)为空。同时,还可以自动退出拓展程序以停止执行数据库命令,本实施例对此不作具体限定。
在获取到预设连接地址URL后,创建的Redis客户端实例可以获取到的URL作为参数,连接对应的Redis服务器。当连接至Redis服务器后,可再执行本步骤204。由于目标文件内容中可能会包含多条命令行,而Redis服务器在执行数据库命令行时需要一条条地执行,从而可对目标文本内容进行拆分,向Redis服务器发送单条命令行。
相应地,本实施例不对根据目标文本内容,向Redis服务器发送数据库命令行的方式作具体限定,包括但不限于:根据目标文本内容中的第二预设字符,将目标文本内容拆分成数据库命令行集合;基于数据库命令行集合,向Redis服务器发送数据库命令及参数。其中,第二预设字符可根据用户在编辑文本文件时自行设置,本实施例对此不作具体限定。
例如,如图3所示。在图3中,第二预设字符为换行符。通过将换行符作为分隔符,将每一行内容作为一个数组项,可将目标文本内容拆分成一个以行内容为数组项的数组。其中,数组即为数据库命令行集合,目标文本内容的行数即为数组的项数。
在得到数据库命令行集合后,可向Redis服务器发送数据库命令及参数。本实施例不对基于数据库命令行集合,向Redis服务器发送数据库命令及参数的方式作具体限定,包括但不限于:对于数据库命令行集合中任一数据库命令行,当检测到任一数据库命令行不为空且不包含第一预设字符时,获取任一数据库命令行对应的数据库命令及参数。向Redis服务器发送任一数据库命令行对应的数据库命令及参数。
由图3可知,目标文本内容中可能会包含空行或者非数据库命令行。例如,在图3中第2行与第7行为空行。第1行的内容包含第一预设字符“#!”及预设连接地址,而非数据库命令行。因此,对于数据库命令行集合中任一数据库命令行,先要对该数据库命令行进行检测。当检测到该数据库命令行不为空且不包含第一预设字符时,可获取该数据库命令行对应的数据库命令及参数。
对于任一数据库命令行,本实施例不对获取任一数据库命令行对应的数据库命令及参数的方式作具体限定,包括但不限于:按照第三预设字符对任一数据库命令行进行切分,将切分得到的第一项内容作为数据库命令,将切分得到的后续内容作为参数。其中,第三预设字符可以为空格,本实施例对此不作具体限定。
例如,如图3所示。以第3行的内容为例,可将第3行的行内容按照空格进行切分,并将切分后得到的每一项内容存入数组中。相应地,数组第一项内容“set”即为数据库命令,数组的第二项内容“mykey”及第三项内容“hello”即为参数。
在获取数据命令行对应的数据库命令及参数后,可通过调用Redis客户端的send_command接口,传入得到的数据库命令及参数。通过该接口向Redis服务器发送数据库命令及参数,并等待返回结果。
其中,205、获取Redis服务器的返回结果。
通过上述步骤204,在向Redis服务器发送数据库命令及参数之后,Redis服务器可根据参数执行数据库命令,并返回相应的结果。
例如,图3中第3行内容中数据库命令为“set”,参数分别为“mykey”及“hello”,其对应的含义为将“mykey”键的键值设置为“hello”。Redis服务器在执行这条数据库命令时,如果设置成功的话,返回结果为字符串“OK”。同理,对于第4行内容对应的数据库命令,Redis服务器的返回结果为字符串“hello”。对于第5行内容对应的数据库命令,Redis服务器的返回结果为删除键的个数,即整数“1”。对于第5行内容对应的数据库命令,由于之前已经对键进行删除,从而Redis服务器的返回结果为空对象。
其中,206、在VS Code的输出窗口中显示返回结果。
在执行本步骤之前,可先创建一个输出窗口实例,以显示返回结果。具体地,可通过调用vscode.window.createOutputChannel()接口,创建一个输出窗口实例,本实施例对此不作具体限定。
关于在VS Code的输出窗口中显示返回结果的方式,本实施例对此不作具体限定,包括但不限于:向输出窗口写入返回结果;通过调用输出窗口实例的显示方法,在输出窗口中显示返回结果。
在向输出窗口写入返回结果之前,可先向输出窗口写入Redis服务器的预设连接地址、端口、执行的数据库命令及参数,本实施例对此不作具体限定。具体地,可通过调用输出窗口实例的appendLine方法进行写入,本实施例对此不作具体限定。基于上述写入过程,后续在显示返回结果时,能让用户清楚地了解到每条数据库命令是哪个Redis服务器执行的、执行端口是什么以及每条数据库命令对应的执行结果是什么,即达到便于用户查看的目的。
由于返回结果对应的数据类型决定了如何将返回结果写入输出窗口,从而可根据返回结果的数据类型,对返回结果进行写入。相应地,本实施例不对向输出窗口写入返回结果的方式作具体限定,包括但不限于:获取返回结果的数据类型;当返回结果的数据类型为数字时,向输出窗口写入返回数字对应的数据类型及返回的数字;当返回结果的数据类型为字符串时,向输出窗口写入返回的字符串;当返回结果的数据类型为空对象时,向输出窗口写入预设关键字;当返回结果的数据类型为对象时,将返回的对象转换为字符串,向输出窗口写入转换后的字符串。
例如,图4为对Redis服务器的返回结果进行显示后的示意图。在图4中,output表示下列内容为返回结果。“127.0.0.1:6379>set mykeyhello”为Redis服务器的预设连接地址、端口、执行的数据库命令及参数,主要是为了与下面的返回结果“OK”对应,让用户清楚地了解每条数据库命令与其对应的返回结果。由于返回结果“OK”的数据类型为字符串,从而可向输出窗口写入返回的字符串“OK”。
同理,当返回结果的数据类型为数字时,如图4所示,可向输出窗口写入返回数字对应的数据类型“(interger)”整型,再写入返回的数字“1”。
当返回结果的数据类型为空对象时,如图4所示,可向输出窗口写入预设关键字“(nil)”。其中,关键字nil表示无值。
当返回结果的数据类型为对象时,可通过调用JSON的stringify方法将对象转换成字符串,向输出窗口写入转换后的字符串。其中,JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换语言,以文字为基础且易于让人阅读。
需要说明的是,在向输出窗口写入返回结果时,同样可调用输出窗口实例的appendLine方法进行写入,本实施例对此不作具体限定。在向输出窗口写入返回结果后,可通过调用输出窗口实例的show方法,显示返回结果。
另外,当对返回结果进行显示后,可调用Redis客户端实例的quit方法以关闭Redis连接。或者,考虑到用户可能还要继续执行数据库命令,从而还可以重新执行上述步骤201至本步骤206的过程,本实施例对此不作具体限定。
本发明实施例提供的方法,通过检测用户对文本文件的打开指令。当检测到打开指令时,通过VS Code,显示用户打开的目标文本文件中的文本内容。基于显示的文本内容,当检测到拓展程序启动时,获取用户要执行的目标文本内容。根据目标文本内容,向Redis服务器发送数据库命令行。获取Redis服务器的返回结果。在VS Code的输出窗口中显示返回结果。由于可基于启动的拓展程序,根据打开的文本文件中显示的文本内容,来执行对应的数据库命令,而不用复制或手动键入数据库命令,从而节省了数据库命令执行时的命令输入时间,进而提高了数据库命令的执行效率。
另外,由于在预设文本编辑器中可打开多个文本文件,当用户需要执行大量数据库命令时,可将数据库命令拆分成多个文本文件,通过打开多个文本文件分别执行对应的数据库命令,从而能够便于用户对数据库命令的执行流程进行管理。
最后,由于在执行数据库命令时,可通过检测到的预设连接地址,自动连接对应的数据库服务器,从而进一步地提高了数据库命令的执行效率。
本发明实施例提供了一种操作数据库的装置,该装置用于执行上述图1或图2对应的实施例所提供的一种操作数据库的方法。参见图5,该装置包括:
第一获取模块501,用于基于显示的文本内容,当检测到拓展程序启动时,获取用户要执行的目标文本内容,文本内容至少包含数据库命令行;
发送模块502,用于根据目标文本内容,向数据库服务器发送数据库命令行;
第二获取模块503,用于获取数据库服务器的返回结果;
第一显示模块504,用于在输出窗口中显示返回结果。
作为一种可选实施例,该装置还包括:
检测模块,用于检测用户对文本文件的打开指令;
第二显示模块,用于在检测到打开指令时,通过预设文本编辑器,显示用户打开的目标文本文件中的文本内容。
作为一种可选实施例,该装置还包括:
启动模块,用于在检测到用户对预设快捷键的输入指令时,启动拓展程序;或者,当检测到用户对右键菜单中预设选项的选中指令时,启动拓展程序。
作为一种可选实施例,第一获取模块501,包括:
检测单元,用于检测用户对文本内容的选中指令;
第一获取单元,用于在检测到选中指令时,根据选中指令所对应的文本选中范围,获取用户要执行的目标文本内容。
作为一种可选实施例,第一获取模块501,还包括:
第二获取单元,用于在未检测到选中指令时,获取文本内容,并将文本内容作为用户要执行的目标文本内容。
作为一种可选实施例,该装置还包括:
创建模块,用于创建数据库客户端实例;
连接模块,用于通过数据库客户端实例,连接数据库服务器。
作为一种可选实施例,连接模块,包括:
第三获取单元,用于获取文本内容中的预设连接地址;
连接单元,用于通过数据库客户端实例,连接预设连接地址对应的数据库服务器。
作为一种可选实施例,第三获取单元,用于对文本内容中的每一行内容进行检测;当在任一行内容中检测到第一预设字符时,获取任一行内容中第一预设字符后面的字符串,将字符串作为预设连接地址。
作为一种可选实施例,第三获取单元,当在每一行内容中未检测到第一预设字符或第一预设字符后面为空字符串时,通知用户无法连接数据库服务器。
作为一种可选实施例,发送模块502,包括:
拆分单元,用于根据目标文本内容中的第二预设字符,将目标文本内容拆分成数据库命令行集合;
发送单元,用于基于数据库命令行集合,向数据库服务器发送数据库命令及参数。
作为一种可选实施例,发送单元,用于对于数据库命令行集合中任一数据库命令行,当检测到任一数据库命令行不为空且不包含第一预设字符时,获取任一数据库命令行对应的数据库命令及参数;向数据库服务器发送任一数据库命令行对应的数据库命令及参数。
作为一种可选实施例,第一显示模块,包括:
写入单元,用于向输出窗口写入返回结果;
显示单元,用于通过调用输出窗口实例的显示方法,在输出窗口中显示返回结果。
作为一种可选实施例,写入单元,用于获取返回结果的数据类型;当返回结果的数据类型为数字时,向输出窗口写入返回数字对应的数据类型及返回的数字;当返回结果的数据类型为字符串时,向输出窗口写入返回的字符串;当返回结果的数据类型为空对象时,向输出窗口写入预设关键字;当返回结果的数据类型为对象时,将返回的对象转换为字符串,向输出窗口写入转换后的字符串。
作为一种可选实施例,第一获取模块501,用于调用vscode.window.activeTextEditor.selection.isEmpty接口,检测用户是否对文本内容进行选中;基于接口返回的数值,当检测到用户对文本内容进行选中时,以vscode.window.activeTextEditor.selection为参数,调用vscode.window.activeTextEditor.document.getText方法获取用户要执行的目标文本内容;当检测到用户未对文本内容进行选中时,调用vscode.window.activeTextEditor.document.getText方法,获取文本内容,并将文本内容作为用户要执行的目标文本内容。
本发明实施例提供的装置,通过基于显示的文本内容,当检测到拓展程序启动时,获取用户要执行的目标文本内容。根据目标文本内容,向数据库服务器发送数据库命令行。获取数据库服务器的返回结果。在输出窗口中显示返回结果。由于可基于启动的拓展程序,根据打开的文本文件中显示的文本内容,,来执行对应的数据库命令,而不用复制或手动键入数据库命令,从而节省了数据库命令执行时的命令输入时间,进而提高了数据库命令的执行效率。
另外,由于在预设文本编辑器中可打开多个文本文件,当用户需要执行大量数据库命令时,可将数据库命令拆分成多个文本文件,通过打开多个文本文件分别执行对应的数据库命令,从而能够便于用户对数据库命令的执行流程进行管理。
最后,由于在执行数据库命令时,可通过检测到的预设连接地址,自动连接对应的数据库服务器,从而进一步地提高了数据库命令的执行效率。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。