CN109684326A - 数据表创建方法、装置、设备及计算机可读存储介质 - Google Patents
数据表创建方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109684326A CN109684326A CN201811349839.0A CN201811349839A CN109684326A CN 109684326 A CN109684326 A CN 109684326A CN 201811349839 A CN201811349839 A CN 201811349839A CN 109684326 A CN109684326 A CN 109684326A
- Authority
- CN
- China
- Prior art keywords
- information
- data
- code
- tables
- default
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Abstract
本发明公开一种数据表创建方法、装置、设备及计算机可读存储介质,所述方法包括:当接收到建表文件时,读取建表文件中的属主信息和名称信息,并将属主信息和名称信息传输到预设语句中,生成句首代码;对建表文件中的各数据行进行遍历,逐一读取各数据行中各单元格的字符串,并对各字符串基于数据行进行拼接,生成主体代码;将句首代码和主体代码生成建表代码,并控制建表代码运行,以对数据表进行创建。本方案中的建表代码通过建表文件中的字符串拼接生成,避免了开发人员的编写;同时通过建表文件中字符串的更新实现表结构的更新,确保了建表代码和建表文件之间的同步更新,提高了数据表的开发和测试效率。
Description
技术领域
本发明主要涉及数据库技术领域,具体地说,涉及一种数据表创建方法、装置、设备及计算机可读存储介质。
背景技术
数据库中的数据表通过建表代码进行创建,而建表代码由开发人员编写;且在数据库中新建数据表的流程较为固定,先由开发人员编写开发文档,再在开发文档的基础上编写相应的SQL(Structured Query Language,结构化查询语言)语句,进而由该编写的SQL语句形成的建表代码创建数据表。
虽然所编写的SQL语句的语法简单,但是过程繁琐,开发人员的风格各异,容易出错,需要花费开发人员和测试人员较多的时间进行开发和测试;同时在数据表创建过程中,依据先编写开发文档,再编写SQL语句的流程进行创建;若所创建的数据表在使用过程中需要修改或更新表结构,容易出现直接更新SQL语句,而遗忘对开发文档更新的情况,引起了测试人员测试的不便,进一步增加了测试的时间。
发明内容
本发明的主要目的是提供一种数据表创建方法、装置、设备及计算机可读存储介质,旨在解决现有技术中对数据库中数据表依据开发人员所开发建表代码的方式创建,需要花费开发人员和测试人员较多时间的问题。
为实现上述目的,本发明提供一种数据表创建方法,所述数据表创建方法包括以下步骤:
当接收到建表文件时,读取所述建表文件中的属主信息和名称信息,并将所述属主信息和所述名称信息传输到预设语句中,生成句首代码;
对所述建表文件中的各数据行进行遍历,逐一读取各所述数据行中各单元格的字符串,并对各所述字符串基于所述数据行进行拼接,生成主体代码;
将所述句首代码和所述主体代码生成建表代码,并控制所述建表代码运行,以对数据表进行创建。
优选地,所述对各所述字符串基于所述数据行进行拼接,生成主体代码的步骤包括:
对从所述数据行中逐一读取的各所述字符串进行拼接,并判断所述数据行中默认单元格的默认值是否为空值,若所述默认值为空值,则对拼接的所述字符串添加预设完成标识;
若所述默认值不为空值,则在拼接的所述字符串中分别添加默认值、预设默认标识以及预设完成标识;
在对拼接的所述字符串中添加预设完成标识后,将所述建表文件中的下一数据行更新为新的所述数据行,并检测所述数据行中的首单元格是否为空值;
若所述首单元格为空值,则完成所述建表文件中所有所述数据行的拼接,并对拼接完成的所述数据行添加预设结束标识,生成主体代码;若所述首单元格不为空值,则执行对从所述数据行中逐一读取的各所述字符串进行拼接的步骤。
优选地,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
读取所述建表文件中与所述名称信息对应的名称备注信息以及字段备注信息,并将所述名称信息及其对应的名称备注信息以及所述字段备注信息分别添加到预设备注语句中,形成与创建的所述数据表以及拼接的所述字符串所对应的备注信息。
优选地,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
读取所述建表文件中的路径信息,并在所述路径信息所指引的路径中创建第一文件夹;
将所述名称信息作为第一命名信息为所述第一文件夹命名,并将所述建表代码存储到所述第一文件夹中。
优选地,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
判断所述建表文件中的索引列是否存在索引信息,若存在索引信息,则读取所述索引信息,并将所述索引信息添加到预设索引语句中,形成索引代码;
获取第二命名信息,在所述路径信息所指引的路径中创建以所述第二命名信息命名的第二文件夹,并将所述索引代码存储到所述第二文件夹中。
优选地,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
判断所述建表文件中的用户名列是否存在用户名信息,若存在用户名信息,则读取所述用户名信息所在行中对应的授权类型;
将所述用户名信息和所述授权类型添加到预设授权语句中,形成授权代码;
获取第三命名信息,在所述路径信息所指引的路径中创建以所述第三命名信息命名的第三文件夹,并将所述授权代码存储到所述第三文件夹中。
优选地,所述将所述授权代码存储到所述第三文件夹中的步骤之后包括:
将所述第一命名信息、第二命名信息和第三命名信息添加到预设文档中,形成部署文档。
此外,为实现上述目的,本发明还提出一种数据表创建装置,所述数据表创建装置包括:
读取模块,用于当接收到建表文件时,读取所述建表文件中的属主信息和名称信息,并将所述属主信息和所述名称信息传输到预设语句中,生成句首代码;
拼接模块,用于对所述建表文件中的各数据行进行遍历,逐一读取各所述数据行中各单元格的字符串,并对各所述字符串基于所述数据行进行拼接,生成主体代码;
创建模块,用于将所述句首代码和所述主体代码生成建表代码,并控制所述建表代码运行,以对数据表进行创建。
此外,为实现上述目的,本发明还提出一种数据表创建设备,所述数据表创建设备包括:存储器、处理器、通信总线以及存储在所述存储器上的数据表创建程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述数据表创建程序,以实现以下步骤:
当接收到建表文件时,读取所述建表文件中的属主信息和名称信息,并将所述属主信息和所述名称信息传输到预设语句中,生成句首代码;
对所述建表文件中的各数据行进行遍历,逐一读取各所述数据行中各单元格的字符串,并对各所述字符串基于所述数据行进行拼接,生成主体代码;
将所述句首代码和所述主体代码生成建表代码,并控制所述建表代码运行,以对数据表进行创建。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行以用于:
当接收到建表文件时,读取所述建表文件中的属主信息和名称信息,并将所述属主信息和所述名称信息传输到预设语句中,生成句首代码;
对所述建表文件中的各数据行进行遍历,逐一读取各所述数据行中各单元格的字符串,并对各所述字符串基于所述数据行进行拼接,生成主体代码;
将所述句首代码和所述主体代码生成建表代码,并控制所述建表代码运行,以对数据表进行创建。
本实施例的数据表创建方法,由开发人员编制用于建立数据表的建表文件并上传,当接收到该上传的建表文件时,读取其中的属主信息和名称信息,并将该属主信息和名称信息传输到预设语句中,生成用于建立数据表的句首代码;同时遍历建表文件中的各数据行,读取各个数据行中单元格的字符串,该各单元格中的字符串表征了所需要建立数据表的表结构信息,对各个字符串以数据行为基础进行拼接,生成主体代码;句首代码和主体代码共同形成建表代码,建表代码运行即可创建数据表。本方案中建表代码通过读取到的建表文件中的字符串拼接生成,避免了开发人员的编写,使得所生成的建表代码规范统一,降低了出错率,节省了开发人员和测试人员的开发和测试时间;同时在对表结构进行更新时,通过对建表文件中的字符串进行更新,使得读取的用于形成建表代码的字符串内容发生变化,而实现表结构的更新,避免了建表代码和建表文件之间没有同步更新的情况,提高了对数据库中数据表的开发和测试效率。
附图说明
图1是本发明的数据表创建方法第一实施例的流程示意图;
图2是本发明的数据表创建装置第一实施例的功能模块示意图;
图3是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据表创建方法。
请参照图1,图1为本发明数据表创建方法第一实施例的流程示意图。在本实施例中,所述数据表创建方法包括:
步骤S10,当接收到建表文件时,读取所述建表文件中的属主信息和名称信息,并将所述属主信息和所述名称信息传输到预设语句中,生成句首代码;
本发明的数据表创建方法应用于服务器,适用于通过服务器对数据库中的数据表进行创建。具体地,对数据库开发的开发人员有对数据库中数据表的创建需求时,先编写建表文件,该建表文件为以EXCEL形式所存在的文件,其中设定有表征所需要创建的数据表中的各项内容,如设定数据表中各列的数据类型是字符串类型还是数据类型、字符串类型的最大长度、数据表名称信息、属主信息等。当接收到开发人员所上传的该建表文件时,根据预先设置表征属主信息以及名称信息所在建表文件单元格位置的标识符,读取建表文件中的属主信息和名称信息,以确定需要创建的数据表所具有的名称,以及对该数据表具有各个操作权限的属主用户。同时预先设置有用于生成句首代码的预设语句,将该读取的属主信息和名称信息传输到预设语句中,即可生成句首代码;该句首代码作为创建数据表代码的起始语句,以对数据表进行创建。其中预设语句可以是“create table+表名”,将读取的属主信息和名称信息传输到该预设语句中,替换其中“表名”,生成“create tableuser.tablename(”的句首代码,以该句首代码作为起始,生成用于创建数据表的建表代码。
步骤S20,对所述建表文件中的各数据行进行遍历,逐一读取各所述数据行中各单元格的字符串,并对各所述字符串基于所述数据行进行拼接,生成主体代码;
可理解地,建表文件以EXCEL文件形式存在,其中包括数据行和数据列,数据行用于设定数据表中各字段的字段信息,一行数据行对应一个字段的字段信息,数据列则用于设定字段的各种信息,如字段名、字段类型、字段描述、默认值等;使得EXCEL表中各个单元格所对应的数据行和数据列表征某个字段所具有的某项信息。对建表文件以数据行为基础进行遍历,读取数据行中各个单元格中的字符串;因建表文件中涉及到用于创建数据表的多种信息,为了区分该各种信息,在建表文件的各数据行中设置用于存储字段信息的起始行,以该起始行开始往后的多个数据行用于存储字段信息;读取时则以该起始行作为起点,对其中单元格的字符串进行读取。此后对该读取的字符串基于其所来源的数据行进行拼接,生成主体代码;即对读取的来自同一数据行的字符串进行拼接。考虑到数据行中涉及到默认值,该默认值可以为空值也可以不是空值,针对空值和非空值的情况,设置有不同的拼接机制;具体地,对各字符串基于数据行进行拼接,生成主体代码的步骤包括:
步骤S21,对从所述数据行中逐一读取的各所述字符串进行拼接,并判断所述数据行中默认单元格的默认值是否为空值,若所述默认值为空值,则对拼接的所述字符串添加预设完成标识;
进一步地,表征字段默认值的信息存储在数据行的某一单元格中,将该单元格作为默认单元格,由各个数据行的默认单元格所组成的数据列设置有表征该数据列为默认值信息的列标识,使得各个默认单元格均携带有该列标识,且该各数据列位于存储字段信息的单元格所在数据列之后。在以起始行为起点,对从数据行中各单元格逐一读取的字符串进行拼接的过程中,当检测到单元格携带有列标识时,则判定该单元格为默认单元格,将从该默认单元格中所读取的字符串作为默认值,并判断默认值是否为空值。如果默认值为空值,则不需要对该默认单元格的字符串进行拼接操作;因此默认单元格所在数据列之前用于存储字段信息的单元格均进行了拼接操作,而不需要再对其它单元格的字符串进行拼接操作,对此前所拼接的字符串添加预设完成标识。该预设完成标识为预先设置用于表征对一行数据行进行拼接完成的标识,可用“英文分号”+“换行符”的形式进行表征。需要说明的是,当默认单元格所组成的数据列不位于存储字段信息的单元格所在数据列之后,而在存储字段信息的单元格之前或之间时,则在判定默认值为空值而不对其中字符串进行拼接操作的同时,继续对后续数据列中单元格的字符串进行拼接操作,直到后续数据列中存储字段信息的单元格的字符串拼接完成,而添加该预设完成标识,表征对当前数据行中所存储字段信息的单元格中的字符串拼接完成。
步骤S22,若所述默认值不为空值,则在拼接的所述字符串中分别添加默认值、预设默认标识以及预设完成标识;
更进一步地,当判定出默认值不是空值时,则需要将该默认值添加到所拼接的字符串中,同时添加预设默认标识以及预设完成标识;该预设默认标识为预先设置用于表征默认值不为空的标识。其中所添加的默认值以“default”+默认值的形式表示,添加的默认标识以“空格”+“not null”的形式进行拼接;即分别对拼接的字符串继续拼接“default”+默认值以及“空格”+“not null”,此后再拼接“英文分号”+“换行符”,以表征对数据行中各单元格的字符串拼接完成。
步骤S23,在对拼接的所述字符串中添加预设完成标识后,将所述建表文件中的下一数据行更新为新的所述数据行,并检测所述数据行中的首单元格是否为空值;
步骤S24,若所述首单元格为空值,则完成所述建表文件中所有所述数据行的拼接,并对拼接完成的所述数据行添加预设结束标识,生成主体代码;若所述首单元格不为空值,则执行对从所述数据行中逐一读取的各所述字符串进行拼接的步骤。
因以EXCEL形式存在的建表文件中包括多个数据行,在对一行数据行中各单元格的字符串进行拼接,并对所拼接的字符串添加预设完成标识,表征对该行数据行拼接完成后,则进一步读取建表文件中的下一数据行,将该下一数据行作为新的数据行,以对该新的数据行中单元格的字符串进行拼接。考虑到下一数据行中可能没有数据,需要对该作为新的数据行的下一数据行中的首单元格进行空值检测,即检测排列在下一数据行中第一的单元格是否为空值;若为空值,则说明该新的数据行中没有数据,对建表文件中的所有数据行均进行了拼接操作;对所有拼接完成的数据行添加预设结束标识,该预设结束标识为预先设置用于表征对建表文件中所有存储字段信息的数据行均拼接完成,其可以以字符串符串“);”的形式存在;即对拼接完成的数据行拼接“);”,以表征对建表文件中存储字段信息的各数据行均拼接完成,且该拼接完成的数据行所形成的拼接字符串即生成用于创建数据表的主体代码。而当检测新的数据行中首单元格不是空值,则说明新的数据行中存在数据,仍然需要进行拼接操作,则执行对从数据行中逐一读取各字符串进行拼接的步骤;即继续将从新的数据行中逐一读取的字符串进行拼接操作,直到检测到某一新的数据行中首单元格为空值,才判定对建表文件中存储字段信息的各数据行拼接完成;添加预设结束标识,生成用于创建数据表的主体代码。
步骤S30,将所述句首代码和所述主体代码生成建表代码,并控制所述建表代码运行,以对数据表进行创建。
更进一步地,在生成句首代码和主体代码后,将两种代码合并形成用于创建数据表的建表代码,避免开发人员对建表代码的编写;此后控制该建表代码运行,对数据表进行创建,该建表代码运行所得到的结果即生成了数据库中的数据表,实现依据读取的建表文件中的字符串生成建表代码,进而由建表代码创建数据表。
本实施例的数据表创建方法,由开发人员编制用于建立数据表的建表文件并上传,当接收到该上传的建表文件时,读取其中的属主信息和名称信息,并将该属主信息和名称信息传输到预设语句中,生成用于建立数据表的句首代码;同时遍历建表文件中的各数据行,读取各个数据行中单元格的字符串,该各单元格中的字符串表征了所需要建立数据表的表结构信息,对各个字符串以数据行为基础进行拼接,生成主体代码;句首代码和主体代码共同形成建表代码,建表代码运行即可创建数据表。本方案中建表代码通过读取到的建表文件中的字符串进行生成,避免了开发人员的编写,使得所生成的建表代码规范统一,降低了出错率,节省了开发人员和测试人员的开发和测试时间;同时在对表结构进行更新时,通过对建表文件中的字符串进行更新,使得读取的用于形成建表代码的字符串内容发生变化,而实现表结构的更新,避免了建表代码和建表文件之间没有同步更新的情况,提高了对数据库中数据表的开发和测试效率。
进一步地,在本发明数据表创建方法另一实施例中,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
步骤S40,读取所述建表文件中与所述名称信息对应的名称备注信息以及字段备注信息,并将所述名称信息及其对应的名称备注信息以及所述字段备注信息分别添加到预设备注语句中,形成与创建的所述数据表以及拼接的所述字符串所对应的备注信息。
可理解地,数据库中的数据表用于对各类数据进行存储,为了对各类所存储的数据进行区分,可对各个字段信息添加备注信息,即字段备注信息。此外,考虑到数据表在不同使用场景下需要使用不同的名称,如在中文的使用场景下使用中文名称,而在英文的使用场景下使用英文名称,将常用使用场景下的名称作为名称信息,而将不常用使用场景下的名称作为与名称信息所对应的名称备注信息;如数据表常用的使用场景为中文,而不常用的使用场景为英文,则将其中文名称作为名称信息,而将其英文名称作为与中文名称所对应的名称备注信息。建表文件中预先设置有特定的用于存储名称备注信息和字段备注信息的单元格,该特定的单元格设定有备注标识符;在生成建表代码后,根据该备注标识符读取建表文件中的名称备注信息和字段备注信息,并将名称信息及其对应的名称备注信息,以及字段备注信息分别添加到预设备注语句中。
预设备注语句为预先设置用于生成备注信息的语句,将名称信息及其对应的名称备注信息添加到预设备注语句中,形成与创建的数据表对应的备注信息,即对所创建的数据表进行备注;其中预设备注语句可以以““COMMENT ON TABLE”+xx+“IS”+yy+“;””形式存在,将名称信息和名称备注信息分别添加到“xx”和“yy”的位置,并添加换行符,所形成的语句即为用于生成备注信息的语句。同样地,将字段备注信息添加到预设备注语句中,形成与拼接的字符串对应的备注信息,即对各数据行所拼接形成的字符串进行备注;因拼接所形成的字符串实际为表征各字段的字段信息,使得所形成的备注信息即为对各字段的备注,如备注说明字段为业务需求。
进一步地,在本发明数据表创建方法另一实施例中,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
步骤a1,读取所述建表文件中的路径信息,并在所述路径信息所指引的路径中创建第一文件夹;
可理解地,对于所生成的建表代码需要进行存储,而存储依据路径信息进行,即将建表代码存储在路径信息所指引的路径中。在建表文件中预先设置特定的用于放置路径信息的单元格,该特定的单元格设定有路径标识符;在生成建表代码后,根据该路径标识符读取建表文件中的路径信息,并在路径信息所指引的路径中创建第一文件夹,该第一文件夹即为放置所生成的建表代码的文件夹。
步骤a2,将所述名称信息作为第一命名信息为所述第一文件夹命名,并将所述建表代码存储到所述第一文件夹中。
进一步地,为了表征第一文件夹中所存储的创建代码的用途,需要对第一文件夹命名;因此前所读取的名称信息表征了所需要创建的数据表名称,而第一文件夹用于放置用于创建数据表的建表代码,从而可将该名称信息作为第一命名信息,对第一文件夹命名。即将第一文件夹的名称命名为该作为第一命名信息的名称信息,以表征第一文件夹中所放置的建表代码,用于创建第一文件夹所命名的数据表。需要说明的是,第一文件夹的名称也可以通过按照需求指定的方式进行命名,而不依据建表文件中的名称信息;即开发人员将设定的第一文件夹的名称上传,在路径信息所指定的路径中创建第一文件夹之后,将该第一文件夹的名称配置为开发人员所上传的名称。在对第一文件夹命名之后,将所生成的建表代码添加到该第一文件夹中进行存储,以便于后续依据该存储的建表代码在数据库中创建数据表。
进一步地,在本发明数据表创建方法另一实施例中,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
步骤b1,判断所述建表文件中的索引列是否存在索引信息,若存在索引信息,则读取所述索引信息,并将所述索引信息添加到预设索引语句中,形成索引代码;
更进一步地,为了便于对数据表中的字段进行查找,可针对数据表添加索引,索引由索引代码生成,在建表文件中预先设定索引列,索引列用于存储生成索引代码的索引信息。索引列用预先设置的索引标识符表征,在生成建表代码后,根据该索引标识符对建表文件的索引列中的信息进行读取,并通过读取的信息判断建表文件中的索引列中是否存在索引信息;当读取的信息不是空值信息时,则可判定建表文件中的索引列存在索引信息;而当读取的信息是空值信息时,则可判定建表文件中的索引列中不存在索引信息,而不需要生成索引代码,即不需要对数据表添加索引。需要说明的是,当索引列中存在索引信息时,所读取的索引信息至少包括两类,一类用于表征所添加索引的名称,另一类用于表征数据表中添加索引的列位置;两类索引信息存在于不同的数据列中,该数据列即为预先指定的索引列。读取索引列中所存在的索引信息,并将该索引信息添加到预设索引语句中;该预设索引语句为预先设置用于生成索引代码的语句,将索引信息添加到预设索引语句中,形成索引代码,进而由索引代码的运行对数据表添加索引。其中预设索引语句可以以““createindex”+xx列值+“on”+表属主+表名+“(”+yy列值+“);””的形式存在,将读取的索引信息添加到“xx列值”和“yy列值”的位置,其中xx列值的位置表征索引的名称,而yy列值的位置表征所需要添加索引的数据库中的列号,即将从xx列所读取的信息添加到数据库中yy列的位置。
考虑到数据库中需要添加索引的字段可能众多,即从索引列中读取到的作为索引信息的xx列值以及yy列值存在多个,将各个xx列值和yy列值均逐一添加到预设索引语句中,直到读取到索引列中某一单元格的信息为空值,则停止对索引信息的读取操作,而将经添加操作的各个预设索引语句整体形成索引代码,以通过索引代码为数据表添加索引。
步骤b2,获取第二命名信息,在所述路径信息所指引的路径中创建以所述第二命名信息命名的第二文件夹,并将所述索引代码存储到所述第二文件夹中。
进一步地,在生成索引代码后,需要对所生成的索引代码进行存储操作,且将该索引代码和建表代码存储在相同路径信息所指引的路径中,以便于建表代码运行生成数据表的同时,通过索引代码为所生成的数据表添加索引。具体地,在路径信息所指引的路径中创建第二文件夹,并对该第二文件夹进行命名,该命名由第二命名信息确定;第二命名信息可预先设置在建表文档的预设单元格中,也可通过开发人员上传。即以从建表文档的预设单元格中读取或者接收开发人员所上传的第二命名信息的方式获取到第二命名信息,并以该第二命名信息对第二文件夹进行命名。在对第二文件夹命名之后,将所生成的索引代码添加到该第二文件夹中进行存储,以便于后续依据该存储的索引代码为数据表中创建索引。
进一步地,在本发明数据表创建方法另一实施例中,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
步骤c1,判断所述建表文件中的用户名列是否存在用户名信息,若存在用户名信息,则读取所述用户名信息所在行中对应的授权类型;
可理解地,在数据表使用过程中,可能不同的用户均对数据表有使用需求;但是考虑到数据表中所存储的数据安全性,需要对各用户的使用权限加以限制,对不同用户分配不同的使用权限。具体地,在建表文件中预先设定用户名列,用户名列用于存储需要分配权限的用户信息。用户名列用预先设置的权限标识符表征,在生成建表代码后,根据该权限标识符对建表文件的用户名列中的信息进行读取,并通过读取的信息判断建表文件中的用户名列中是否存在用户信息;当读取的信息不是空值信息时,则可判定建表文件中的用户名列存在用户信息,需要为不同用户分配对数据表的使用权限;而当读取的信息是空值信息时,则可判定建表文件中的用户名列中不存在用户信息,不需要对不同用户分配对数据表的使用权限。当用户名列中存在用户名信息时,位于用户名列中的各个单元格存储需要分配权限的各个用户名信息,而各个用户名信息所在行中的各个单元格存储有授权类型,以表征对与各用户名信息所对应的用户所分配的权限类型。从而读取用户信息所在行中对应的授权类型,以依据该授权类型为各个用户分配对数据表的操作权限。
步骤c2,将所述用户名信息和所述授权类型添加到预设授权语句中,形成授权代码;
进一步地,对用户分配操作权限由授权代码实现,预先设置有用于生成授权代码的预设授权语句;将读取的用户名信息及其对应的授权类型添加到该预设授权语句中,即可生成授权代码,进而由授权代码的运行实现为用户授予对数据表的操作权限。其中预设授权代码可以以““GRANT”+m+“for”+n+“on”+表属主+表名”的形式存在,将读取的的用户名信息和授权类型添加到“n”和“m”的位置,形成授权语句。考虑到存在为同一用户分配多种权限的情形,即读取的m值涉及到多个,此时将每种权限,即各个m值用英文逗号分开,以对用户n分配诸如复制、改写、读取等多种类型的权限。在将读取的各个用户名信息及其对应的权限类型均添加到预设授权语句中,形成各个授权语句之后,各个授权语句整体形成授权代码,以通过授权代码为不同用户分配对数据表的不同操作权限。
步骤c3,获取第三命名信息,在所述路径信息所指引的路径中创建以所述第三命名信息命名的第三文件夹,并将所述授权代码存储到所述第三文件夹中。
更进一步地,在生成授权代码后,需要对所生成的授权代码进行存储操作,且将该授权代码和建表代码存储在相同路径信息所指引的路径中,以便于建表代码运行生成数据表的同时,通过授权代码为用户分配对所生成的数据表的操作权限。具体地,在路径信息所指引的路径中创建第三文件夹,并对该第三文件夹进行命名,该命名由第三命名信息确定;第三命名信息可预先设置在建表文档的预设单元格中,也可通过开发人员上传。即以从建表文档的预设单元格中读取或者接收开发人员所上传的第三命名信息的方式获取到第三命名信息,并以该第三命名信息对第三文件夹进行命名。在对第三文件夹命名之后,将所生成的授权代码添加到该第三文件夹中进行存储,以便于后续依据该存储的授权代码为用户分配对数据表的操作权限。
进一步地,在本发明数据表创建方法另一实施例中,所述将所述授权代码存储到所述第三文件夹中的步骤之后包括:
步骤c4,将所述第一命名信息、第二命名信息和第三命名信息添加到预设文档中,形成部署文档。
可理解地,生成的建表代码、索引代码以及授权代码不能单独存在,需要部署到具体的项目工程中,由项目工程的调度实现各程序的运行。该部署操作由部署文档实现,为了生成部署文档,对建表代码、索引代码以及授权代码所在的第一文件夹、第二文件夹以及第三文件夹所对应的第一命名信息、第二命名信息以及第三命名信息进行读取,并将该读取的第一命名信息、第二命名信息以及第三命名信息添加到预设文档中,生成部署文档;其中预设文档为预先设置用于生成部署文档的文件。通过该生成的部署文档将建表代码、索引代码以及授权代码部署到项目工程中,项目工程根据部署文档中的第一命名信息、第二命名信息以及第三命名信息查找对应的第一文件夹、第二文件夹以及第三文件夹,进而调用各个文件夹中的代码运行,以对数据表进行创建,并为所创建的数据表添加索引,以及为用户分配针对数据表进行操作的不同权限;实现通过建表文件对数据库中数据表的创建,添加索引及授权。
此外,请参照图2,本发明提供一种数据表创建装置,在本发明数据表创建装置第一实施例中,所述数据表创建装置包括:
读取模块10,用于当接收到建表文件时,读取所述建表文件中的属主信息和名称信息,并将所述属主信息和所述名称信息传输到预设语句中,生成句首代码;
拼接模块20,用于对所述建表文件中的各数据行进行遍历,逐一读取各所述数据行中各单元格的字符串,并对各所述字符串基于所述数据行进行拼接,生成主体代码;
创建模块30,用于将所述句首代码和所述主体代码生成建表代码,并控制所述建表代码运行,以对数据表进行创建。
本实施例的数据表创建装置,由开发人员编制用于建立数据表的建表文件并上传,当接收到该上传的建表文件时,读取模块10读取其中的属主信息和名称信息,并将该属主信息和名称信息传输到预设语句中,生成用于建立数据表的句首代码;同时拼接模块20遍历建表文件中的各数据行,读取各个数据行中单元格的字符串,该各单元格中的字符串表征了所需要建立数据表的表结构信息,对各个字符串以数据行为基础进行拼接,生成主体代码;创建模块30将句首代码和主体代码共同形成建表代码,建表代码运行即可创建数据表。本方案中建表代码通过读取到的建表文件中的字符串拼接生成,避免了开发人员的编写,使得所生成的建表代码规范统一,降低了出错率,节省了开发人员和测试人员的开发和测试时间;同时在对表结构进行更新时,通过对建表文件中的字符串进行更新,使得读取的用于形成建表代码的字符串内容发生变化,而实现表结构的更新,避免了建表代码和建表文件之间没有同步更新的情况,提高了对数据库中数据表的开发和测试效率。
进一步地,在本发明数据表创建装置另一实施例中,所述拼接模块包括:
拼接单元,用于对从所述数据行中逐一读取的各所述字符串进行拼接,并判断所述数据行中默认单元格的默认值是否为空值,若所述默认值为空值,则对拼接的所述字符串添加预设完成标识;
添加单元,用于若所述默认值不为空值,则在拼接的所述字符串中分别添加默认值、预设默认标识以及预设完成标识;
更新单元,用于在对拼接的所述字符串中添加预设完成标识后,将所述建表文件中的下一数据行更新为新的所述数据行,并检测所述数据行中的首单元格是否为空值;
生成单元,用于若所述首单元格为空值,则完成所述建表文件中所有所述数据行的拼接,并对拼接完成的所述数据行添加预设结束标识,生成主体代码;若所述首单元格不为空值,则执行对从所述数据行中逐一读取的各所述字符串进行拼接的步骤。
进一步地,在本发明数据表创建装置另一实施例中,所述创建模块还用于:
读取所述建表文件中与所述名称信息对应的名称备注信息以及字段备注信息,并将所述名称信息及其对应的名称备注信息以及所述字段备注信息分别添加到预设备注语句中,形成与创建的所述数据表以及拼接的所述字符串所对应的备注信息。
进一步地,在本发明数据表创建装置另一实施例中,所述创建模块还用于:
读取所述建表文件中的路径信息,并在所述路径信息所指引的路径中创建第一文件夹;
将所述名称信息作为第一命名信息为所述第一文件夹命名,并将所述建表代码存储到所述第一文件夹中。
进一步地,在本发明数据表创建装置另一实施例中,所述创建模块还用于:
判断所述建表文件中的索引列是否存在索引信息,若存在索引信息,则读取所述索引信息,并将所述索引信息添加到预设索引语句中,形成索引代码;
获取第二命名信息,在所述路径信息所指引的路径中创建以所述第二命名信息命名的第二文件夹,并将所述索引代码存储到所述第二文件夹中。
进一步地,在本发明数据表创建装置另一实施例中,所述创建模块还用于:
判断所述建表文件中的用户名列是否存在用户名信息,若存在用户名信息,则读取所述用户名信息所在行中对应的授权类型;
将所述用户名信息和所述授权类型添加到预设授权语句中,形成授权代码;
获取第三命名信息,在所述路径信息所指引的路径中创建以所述第三命名信息命名的第三文件夹,并将所述授权代码存储到所述第三文件夹中。
进一步地,在本发明数据表创建装置另一实施例中,所述创建模块还用于:
将所述第一命名信息、第二命名信息和第三命名信息添加到预设文档中,形成部署文档。
其中,上述数据表创建装置的各虚拟功能模块存储于图3所示数据表创建设备的存储器1005中,处理器1001执行数据表创建程序时,实现图2所示实施例中各个模块的功能。
参照图3,图3是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明实施例数据表创建设备可以是PC(personal computer,个人计算机),也可以是智能手机、平板电脑、电子书阅读器、便携计算机等终端设备。
如图3所示,该数据表创建设备可以包括:处理器1001,例如CPU(CentralProcessing Unit,中央处理器),存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速RAM(random accessmemory,随机存取存储器),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,该数据表创建设备还可以包括用户接口、网络接口、摄像头、RF(RadioFrequency,射频)电路,传感器、音频电路、WiFi(Wireless Fidelity,无线宽带)模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图3中示出的数据表创建设备结构并不构成对数据表创建设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图3所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块以及数据表创建程序。操作系统是管理和控制数据表创建设备硬件和软件资源的程序,支持数据表创建程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与数据表创建设备中其它硬件和软件之间通信。
在图3所示的数据表创建设备中,处理器1001用于执行存储器1005中存储的数据表创建程序,实现上述数据表创建方法各实施例中的步骤。
本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述数据表创建方法各实施例中的步骤。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (10)
1.一种数据表创建方法,其特征在于,所述数据表创建方法包括以下步骤:
当接收到建表文件时,读取所述建表文件中的属主信息和名称信息,并将所述属主信息和所述名称信息传输到预设语句中,生成句首代码;
对所述建表文件中的各数据行进行遍历,逐一读取各所述数据行中各单元格的字符串,并对各所述字符串基于所述数据行进行拼接,生成主体代码;
将所述句首代码和所述主体代码生成建表代码,并控制所述建表代码运行,以对数据表进行创建。
2.如权利要求1所述的数据表创建方法,其特征在于,所述对各所述字符串基于所述数据行进行拼接,生成主体代码的步骤包括:
对从所述数据行中逐一读取的各所述字符串进行拼接,并判断所述数据行中默认单元格的默认值是否为空值,若所述默认值为空值,则对拼接的所述字符串添加预设完成标识;
若所述默认值不为空值,则在拼接的所述字符串中分别添加默认值、预设默认标识以及预设完成标识;
在对拼接的所述字符串中添加预设完成标识后,将所述建表文件中的下一数据行更新为新的所述数据行,并检测所述数据行中的首单元格是否为空值;
若所述首单元格为空值,则完成所述建表文件中所有所述数据行的拼接,并对拼接完成的所述数据行添加预设结束标识,生成主体代码;若所述首单元格不为空值,则执行对从所述数据行中逐一读取的各所述字符串进行拼接的步骤。
3.如权利要求2所述的数据表创建方法,其特征在于,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
读取所述建表文件中与所述名称信息对应的名称备注信息以及字段备注信息,并将所述名称信息及其对应的名称备注信息以及所述字段备注信息分别添加到预设备注语句中,形成与创建的所述数据表以及拼接的所述字符串所对应的备注信息。
4.如权利要求3所述的数据表创建方法,其特征在于,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
读取所述建表文件中的路径信息,并在所述路径信息所指引的路径中创建第一文件夹;
将所述名称信息作为第一命名信息为所述第一文件夹命名,并将所述建表代码存储到所述第一文件夹中。
5.如权利要求4所述的数据表创建方法,其特征在于,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
判断所述建表文件中的索引列是否存在索引信息,若存在索引信息,则读取所述索引信息,并将所述索引信息添加到预设索引语句中,形成索引代码;
获取第二命名信息,在所述路径信息所指引的路径中创建以所述第二命名信息命名的第二文件夹,并将所述索引代码存储到所述第二文件夹中。
6.如权利要求5所述的数据表创建方法,其特征在于,所述将所述句首代码和所述主体代码生成建表代码的步骤之后包括:
判断所述建表文件中的用户名列是否存在用户名信息,若存在用户名信息,则读取所述用户名信息所在行中对应的授权类型;
将所述用户名信息和所述授权类型添加到预设授权语句中,形成授权代码;
获取第三命名信息,在所述路径信息所指引的路径中创建以所述第三命名信息命名的第三文件夹,并将所述授权代码存储到所述第三文件夹中。
7.如权利要求6所述的数据表创建方法,其特征在于,所述将所述授权代码存储到所述第三文件夹中的步骤之后包括:
将所述第一命名信息、第二命名信息和第三命名信息添加到预设文档中,形成部署文档。
8.一种数据表创建装置,其特征在于,所述数据表创建装置包括:
读取模块,用于当接收到建表文件时,读取所述建表文件中的属主信息和名称信息,并将所述属主信息和所述名称信息传输到预设语句中,生成句首代码;
拼接模块,用于对所述建表文件中的各数据行进行遍历,逐一读取各所述数据行中各单元格的字符串,并对各所述字符串基于所述数据行进行拼接,生成主体代码;
创建模块,用于将所述句首代码和所述主体代码生成建表代码,并控制所述建表代码运行,以对数据表进行创建。
9.一种数据表创建设备,其特征在于,所述数据表创建设备包括:存储器、处理器、通信总线以及存储在所述存储器上的数据表创建程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述数据表创建程序,以实现如权利要求1-7中任一项所述的数据表创建方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据表创建程序,所述数据表创建程序被处理器执行时实现如权利要求1-7中任一项所述的数据表创建方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811349839.0A CN109684326A (zh) | 2018-11-13 | 2018-11-13 | 数据表创建方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811349839.0A CN109684326A (zh) | 2018-11-13 | 2018-11-13 | 数据表创建方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109684326A true CN109684326A (zh) | 2019-04-26 |
Family
ID=66185762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811349839.0A Pending CN109684326A (zh) | 2018-11-13 | 2018-11-13 | 数据表创建方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684326A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111178024A (zh) * | 2019-12-17 | 2020-05-19 | 深圳市金蝶天燕云计算股份有限公司 | 数据表拼接方法、装置、计算机设备和存储介质 |
CN111459943A (zh) * | 2020-04-03 | 2020-07-28 | 中国建设银行股份有限公司 | 一种数据处理方法、装置、系统、设备及存储介质 |
CN111782608A (zh) * | 2020-07-21 | 2020-10-16 | 平安国际智慧城市科技股份有限公司 | 文件自动生成方法、装置、电子设备及存储介质 |
CN112035565A (zh) * | 2020-09-03 | 2020-12-04 | 天元大数据信用管理有限公司 | 一种根据word文档生成sql脚本的方法 |
CN112632072A (zh) * | 2020-12-24 | 2021-04-09 | 浪潮软件科技有限公司 | 基于vb生成c格式nr数据库表信息的方法及装置 |
CN113051266A (zh) * | 2019-12-27 | 2021-06-29 | 浙江大搜车软件技术有限公司 | 数据处理方法、装置、计算机可读存储介质和计算机设备 |
CN114741315A (zh) * | 2022-04-28 | 2022-07-12 | 深圳市紫光同创电子有限公司 | 用例更新方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778107A (zh) * | 2012-10-25 | 2014-05-07 | 上海宝信软件股份有限公司 | 一种基于excel快速动态生成表单的方法与平台 |
CN104657140A (zh) * | 2015-02-10 | 2015-05-27 | 广州华多网络科技有限公司 | 代码生成方法及装置 |
CN108170809A (zh) * | 2017-12-28 | 2018-06-15 | 平安科技(深圳)有限公司 | 建表脚本生成方法、装置、设备及计算机可读存储介质 |
-
2018
- 2018-11-13 CN CN201811349839.0A patent/CN109684326A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778107A (zh) * | 2012-10-25 | 2014-05-07 | 上海宝信软件股份有限公司 | 一种基于excel快速动态生成表单的方法与平台 |
CN104657140A (zh) * | 2015-02-10 | 2015-05-27 | 广州华多网络科技有限公司 | 代码生成方法及装置 |
CN108170809A (zh) * | 2017-12-28 | 2018-06-15 | 平安科技(深圳)有限公司 | 建表脚本生成方法、装置、设备及计算机可读存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111178024A (zh) * | 2019-12-17 | 2020-05-19 | 深圳市金蝶天燕云计算股份有限公司 | 数据表拼接方法、装置、计算机设备和存储介质 |
CN111178024B (zh) * | 2019-12-17 | 2023-09-12 | 深圳市金蝶天燕云计算股份有限公司 | 数据表拼接方法、装置、计算机设备和存储介质 |
CN113051266A (zh) * | 2019-12-27 | 2021-06-29 | 浙江大搜车软件技术有限公司 | 数据处理方法、装置、计算机可读存储介质和计算机设备 |
CN111459943A (zh) * | 2020-04-03 | 2020-07-28 | 中国建设银行股份有限公司 | 一种数据处理方法、装置、系统、设备及存储介质 |
CN111782608A (zh) * | 2020-07-21 | 2020-10-16 | 平安国际智慧城市科技股份有限公司 | 文件自动生成方法、装置、电子设备及存储介质 |
CN111782608B (zh) * | 2020-07-21 | 2024-04-16 | 平安国际智慧城市科技股份有限公司 | 文件自动生成方法、装置、电子设备及存储介质 |
CN112035565A (zh) * | 2020-09-03 | 2020-12-04 | 天元大数据信用管理有限公司 | 一种根据word文档生成sql脚本的方法 |
CN112632072A (zh) * | 2020-12-24 | 2021-04-09 | 浪潮软件科技有限公司 | 基于vb生成c格式nr数据库表信息的方法及装置 |
CN112632072B (zh) * | 2020-12-24 | 2023-04-07 | 浪潮软件科技有限公司 | 基于vb生成c格式nr数据库表信息的方法及装置 |
CN114741315A (zh) * | 2022-04-28 | 2022-07-12 | 深圳市紫光同创电子有限公司 | 用例更新方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684326A (zh) | 数据表创建方法、装置、设备及计算机可读存储介质 | |
CN113688006B (zh) | 一种日志数据的校验方法及装置 | |
CN105094707B (zh) | 一种数据存储、读取方法及装置 | |
CN109446218A (zh) | Sql语句生成方法、装置及计算机可读存储介质 | |
CN108491475A (zh) | 数据快速批量导入方法、电子装置及计算机可读存储介质 | |
CN107894952A (zh) | 接口测试用例的生成方法、装置、设备及可读存储介质 | |
CN103838672A (zh) | 一种通用报表的自动化测试方法及装置 | |
CN110287097A (zh) | 批量测试方法、装置及计算机可读存储介质 | |
CN102760096B (zh) | 测试用数据的生成方法、单元测试方法以及单元测试系统 | |
CN104133772A (zh) | 一种自动生成测试数据的方法 | |
CN108170809A (zh) | 建表脚本生成方法、装置、设备及计算机可读存储介质 | |
CN109933311A (zh) | 一种信息系统创建方法及相关装置 | |
US10262055B2 (en) | Selection of data storage settings for an application | |
CN110457346A (zh) | 数据查询方法、装置及计算机可读存储介质 | |
CN106547870A (zh) | 数据库的分表方法及装置 | |
CN106776731A (zh) | 一种搜索实现方法、装置和系统 | |
CN105653258A (zh) | 一种代码处理方法及装置 | |
CN108829651A (zh) | 一种公文处理的方法、装置、终端设备及存储介质 | |
CN106802928B (zh) | 电网历史数据管理方法及其系统 | |
CN106776266A (zh) | 测试工具的配置方法及终端设备 | |
CN109710596A (zh) | 数据清理方法、装置、设备及计算机可读存储介质 | |
CN111651397B (zh) | 一种访问PXIe外设模块的方法和设备 | |
US10909487B2 (en) | Workflow customization | |
CN107729047A (zh) | 文档生成方法及装置 | |
CN110647421B (zh) | 数据库处理方法、装置、系统以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |