一种数据库的生成方法及装置与流程

文档序号:15257786发布日期:2018-08-24 20:55阅读:151来源:国知局

本申请涉及数据库技术领域,具体涉及一种数据库的生成方法及装置。



背景技术:

为了提高开发人员对于项目的开发效率,开发人员在开发项目时,通常会先搭建项目工程的代码框架,然后在搭建好的代码框架下,对于软件体系结构中的各层次以及每个层次内部的各组件,进行责任分配和流程控制,完成系统的业务逻辑设计,从而实现项目的开发。

通常情况下,在搭建代码框架时首先需要设计db(datebase,数据库)。而现有的技术方案中,开发人员通常是根据所设计的数据库的表以及列的相关信息,编写出开发项目工程所需的类以及类的属性,从而基于所编写的类以及类的属性,可以生成与该类以及类的属性对应的项目工程。在此过程中,开发人员往往需要自己编写所需的类以及类的属性,造成开发人员开发项目工程的工作量较大。



技术实现要素:

有鉴于此,本申请实施例提供一种数据库的生成方法及装置,以减少数据库的开发过程中开发人员的工作量。

为解决上述问题,本申请实施例提供的技术方案如下:

第一方面,本申请实施例提供了一种数据库的生成方法,该方法包括:

响应于针对开发项目工程的触发指令,呈现预置的可选项目工程代码模板;

响应于针对所述可选项目工程代码模板的选择指令,确定用户选择的项目工程代码模板;

获取配置信息,所述配置信息表示数据库的表和/或列;

响应于生成所述项目工程的生成指令,根据所述配置信息,基于所述用户选择的项目工程代码模板,生成与所述项目工程对应的类以及类的属性,以便于根据所述类以及类的属性生成所述项目工程的代码。

在一些可能的实施方式中,该方法还包括:

响应于针对所述类以及类的属性的修改操作,对与所述项目工程对应的类和/或类的属性进行修改。

在一些可能的实施方式中,所述响应于针对所述类以及类的属性的修改操作,对与所述项目工程对应的类和/或类的属性进行修改,包括:

响应于针对所述类以及类的属性的增加操作,增加与所述项目工程对应的类和/或类的属性。

在一些可能的实施方式中,所述响应于针对所述类以及类的属性的修改操作,对与所述项目工程对应的类和/或类的属性进行修改,包括:

响应于针对所述类以及类的属性的删除指令,删除与所述项目工程对应的类和/或类的属性。

在一些可能的实施方式中,该方法还包括:

在对与所述项目工程对应的类以及类的属性进行修改之后,保存修改后的类以及类的属性。

在一些可能的实施方式中,所述响应于针对开发项目工程的触发指令,呈现预置的可选项目工程代码模板包括:

响应于针对开发项目工程的触发指令,根据预先对所述可选项目工程代码模板的分类结果,按照类别呈现所述预置的可选项目工程代码模板。

在一些可能的实施方式中,该方法还包括:

获取用户开发项目工程的历史记录;

将所述历史记录中用户开发使用过的项目工程代码模板,确定为预置的可选项目工程代码模板。

在一些可能的实施方式中,该方法还包括:

确定用户的属性信息;

将与所述用户的属性信息对应的项目工程代码模板,作为所述预置的可选项目工程代码模板。

在一些可能的实施方式中,所述类以及类的属性是以可执行的jar文件的形式呈现。

第二方面,本申请实施例还提供了一种数据库的生成装置,该装置包括:

呈现模块,用于响应于针对开发项目工程的触发指令,呈现预置的可选项目工程代码模板;

确定模块,用于响应于针对所述可选项目工程代码模板的选择指令,确定用户选择的项目工程代码模板;

获取模块,用于获取配置信息,所述配置信息表示数据库的表和/或列;

生成模块,用于响应于生成所述项目工程的生成指令,根据所述配置信息,基于所述用户选择的项目工程代码模板,生成与所述项目工程对应的类以及类的属性,以便于根据所述类以及类的属性生成所述项目工程的代码。

在一些可能的实施方式中,该装置还包括:

修改模块,用于响应于针对所述类以及类的属性的修改操作,对与所述项目工程对应的类和/或类的属性进行修改。

在一些可能的实施方式中,所述修改模块具体可以用于响应于针对所述类以及类的属性的增加操作,增加与所述项目工程对应的类和/或类的属性。

在一些可能的实施方式中,所述修改模块具体可以用于响应于针对所述类以及类的属性的删除指令,删除与所述项目工程对应的类和/或类的属性。

在一些可能的实施方式中,该装置还包括:

保存模块,用于在对与所述项目工程对应的类以及类的属性进行修改之后,保存修改后的类以及类的属性。

在一些可能的实施方式中,呈现模块具体可以用于响应于针对开发项目工程的触发指令,根据预先对所述可选项目工程代码模板的分类结果,按照类别呈现所述预置的可选项目工程代码模板。

在一些可能的实施方式中,该装置还包括:

历史记录获取模块,用于获取用户开发项目工程的历史记录;

第一模板确定模块,用于将所述历史记录中用户开发使用过的项目工程代码模板,确定为预置的可选项目工程代码模板。

在一些可能的实施方式中,该装置还包括:

信息确定模块,用于确定用户的属性信息;

第二模板确定模块,用于将与所述用户的属性信息对应的项目工程代码模板,作为所述预置的可选项目工程代码模板。

在一些可能的实施方式中,所述类以及类的属性是以可执行的jar文件的形式呈现。

由此可见,本申请实施例具有如下有益效果:

本申请实施例中,可以通过预置的项目工程代码模板来生成用户所需的项目工程。具体的,在用户执行针对于开发项目工程的触发指令后,可以响应该触发指令,并向用户呈现预置的可选项目工程代码模板,然后响应于用户对可选项目工程代码模板的选择指令,确定用户选择的项目工程代码模板,并获取表示用户所需开发的数据库的表和/或列的配置信息;当用户执行针对于生成项目工程的生成指令后,响应该生成指令,并根据获取的配置信息,基于用户所选择的项目工程代码模板,生成与项目工程对应的类以及类的属性,以便于根据该类以及类的属性生成用户所需开发的项目工程的程序代码,也即为得到用户所需的项目工程。由此可见,用户在开发项目工程时,可以不必通过编写程序代码的方式,编写出开发项目工程所需的类以及类的属性,从而使得用户开发项目工程的工作量得到减少。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。

图1为本申请实施例提供的一种示例性应用场景的示意图;

图2为本申请实施例提供的一种数据库的生成方法的流程示意图;

图3为本申请实施例提供的一种数据库的生成装置的架构示意图。

具体实施方式

通常情况下,开发人员(用户)在搭建代码框架时,首先需要设计数据库,比如设计数据库的类型、数据库的表以及列的信息,然后基于预先对数据库的设计对项目工程进行开发。具体实现时,开发人员通常是基于所设计数据库的类型、数据库的表以及列的相关信息,编写出开发项目工程所需的类以及类的属性,基于所得到的类以及类的属性,可以生成与该类以及类的属性对应的项目工程,从而完成项目工程的开发。

实际应用中,为了减少项目工程开发的工作量,开发人员可以移植历史开发项目时所使用过的相似的项目工程,并基于移植的项目工程,对已有的类以及类的属性进行修改,如修改类的名称、类的构造函数等。这样,这样在一定程度上可以减少开发人员的工作量,但是,可以理解,开发人员仍然是在代码层面上开发项目工程,具体为通过改写相应的程序代码修改类以及类的属性时,开发人员的工作量依然较大。

为了解决上述技术问题,本申请实施例提供了一种数据库的生成方法,使得开发人员不需要重新编写类以及类的属性,而可以利用已有的项目工程代码模板来开发出所需的项目工程。具体的,本申请实施例可以应用于如图1所示的示例性应用场景中,当用户101需要在终端102上开发项目工程时,用户101可以在终端102上执行开发项目工程的触发指令(比如可以是启动项目工程的开发软件的指令等),终端102可以响应于用户101针对于开发项目工程的触发指令,向用户101呈现预置的可选项目工程代码模板,由用户101从呈现的可选项目工程代码模板中进行选择,然后,终端102可以响应于用户101针对该可选项目工程代码模板的选择指令,确定出用户101选择的项目工程代码模板;接着,用户101可以在终端102上输入配置信息,该配置信息表示了用户101所需开发的数据库的表和/列,终端102在获取到该配置信息后,可以响应于用户101所触发的生成该项目工程的生成指令,根据所获取的配置信息,并基于用户101所选择的项目工程代码模板,生成与用户101所需开发的项目工程对应的类以及类的属性,以便于根据该类和类的属性生成用户101所需开发的项目工程的代码模板,从而实现对项目工程的开发。可见,在开发项目工程的过程中,用户101在终端102上并不需要编写出与项目工程对应的类以及类的属性,而是由终端102基于用户101所确定的项目工程代码模板以及相应的配置信息,自动生成得到用户101所需的类以及类的属性,从而大大减少了开发人员的工作量。

需要说明的是,上述示例性应用场景中,将方法应用于终端102只是为了便于说明本方法的具体实施过程,并不用于限定本申请实施例的实施方式。除了可以应用于终端102外,本方法还可以应用于服务器,即用户可以在服务器上完成项目工程的开发。

为了更加详细的介绍本申请技术方案,下面结合附图,通过具体实施例来详细说明本发明实施方式中,生成数据库的方法和装置的各种非限制性实施方式。

参见图2,图2示出了本申请实施例中一种数据库的生成方法的流程示意图。在本实施例中,该方法具体可以包括:

s201:响应于针对开发项目工程的触发指令,呈现预置的可选项目工程代码模板。

在一种示例性的具体实现方式中,用户可以通过操作终端,使得终端生成开发项目工程的触发指令。然后,终端响应该触发指令,向用户呈现预置的可选项目工程代码模板,以便于用户从中选择自己所需的项目工程代码模板。

其中,可选项目工程代码模板是预先设置好的、可供用户选择的模板。在一些可能的实施方式中,开发人员在开发不同项目时所使用的项目工程的程序代码,均可以作为本实施例中的可选项目工程代码模板。通常情况下,不同的可选项目工程代码模板彼此之间可能会存在差异,比如,部分项目工程对应的数据库所能实现的功能包括数据的增加、删除、修改以及查找,而另一部分项目工程对应的数据库所能实现的功能还可以包括数据的隐藏等。

在一些可能的实施方式中,每个可选项目工程代码模板,可以包括由实现不同功能的代码模板,比如,可选项目工程模板可以包括用于对数据库进行操作的db操作模板,也可以包括用于对页面进行处理的页面处理模板等模板,还可以包括有各种类文件模板等。

s202:响应于针对可选项目工程代码模板的选择指令,确定用户选择的项目工程代码模板。

在一种示例性的具体实现方式中,在向用户呈现可选的项目工程代码模板后,用户可以在终端上执行针对于其中一个可选项目工程代码模板的选择操作,该选择操作可以是用户在终端上对项目工程代码模板的点击操作(如单击、双击、长按等操作),也可以是将项目工程代码模板拖动到指定位置的拖动操作等;然后,终端可以生成并响应于用户针对于该可选项目工程代码模板的选择指令,并根据该选择指令,从呈现的可选项目工程代码模板中确定出用户选择的项目工程代码模板。

实际应用中,为了避免由于用户误操作而导致用户误选择了项目工程代码模板,终端所确定的用户所选择的项目工程代码模板是可以更改的。可以理解的是,在终端向用户呈现多个预置的可选项目工程代码模板时,如果用户由于操作失误,错误的点击了用户不需要的项目工程代码模板,则基于该项目工程代码模板所开发得到的数据库通常并不是用户所需求的。因此,为了提高用户的使用体验,可以设定用户选择的项目工程代码模板可以根据用户的操作进行更改。比如,在用户误选了项目工程代码模板后,用户可以在终端上移除该项目工程代码模板,使得用户可以重新选择自己所需的项目工程代码模板,这样,终端可以基于用户再次的选择操作而确定出用户实际所需的项目工程代码模板。在一种示例中,可以基于用户最后一次针对于可选项目工程代码模板的选择操作而生成的选择指令,为终端所确定的用户选择的项目工程代码模板。

s203:获取配置信息,所述配置信息表示数据库的表和/或列。

通常情况下,用户在开发项目工程时,通常需要对数据库进行设计,比如,可以是预先设计出数据库的类型、表的结构、列的个数等。因此,终端还需要确定出用户设计的数据库的表和/或列的相关信息。

在一种示例性的具体实施方式中,终端可以向用户展现输入配置信息的提示信息,由用户将表示所要开发的数据库的表和/或列的配置信息输入至终端,以使得终端获取到该配置信息。

需要说明的是,对于步骤s202与步骤s203在执行时间上的先后顺序,本实施例并不做限定。具体的,可以是终端先确定出用户选择的项目工程代码模板后,再获取配置信息,也可以是终端先获取配置信息,再确定用户所选择的项目工程代码模板,在一些场景下,确定出用户选择的项目工程代码模板以及获取到配置信息的步骤,可以由终端同时执行。

s204:响应于生成数据库的生成指令,根据获取的配置信息,基于用户选择的项目工程代码模板,生成与用户所需开发的项目工程对应的类以及类的属性,以便于根据该类以及类的属性生成用户所需开发的项目工程的代码。

作为一种示例性的具体实现方式,当用户选择了项目工程代码模板并且输入了配置信息后,用户可以在终端上执行生成项目工程的触发操作,然后,终端基于该触发操作,生成并响应生成项目工程的生成指令,根据所获取到的配置信息,基于用户所选择的项目工程代码模板,生成与用户所需开发的项目工程的类以及类的属性,并将所生成的类以及类的属性输出给用户。

其中,类是指具有共同特征的实体的集合,而类的属性是指集合中每个实体的值。类和类的属性,映射着项目工程的功能。比如,生成的类以及类的属性,可以对应着所需生成的项目工程所具有的在数据库中增加数据、删除数据、修改数据以及查找数据的功能等。生成的类以及类的属性,可以是开发出的项目工程所具备的功能的源代码,在一些可能的实施方式中,类和类的属性可以是以可执行的jar文件的形式呈现。这样,用户可以jar文件形式的类以及类的属性,添加到所创建的新的工程中,就实现了对项目工程的开发。

实际应用中,如果用户对所要开发的项目工程存在进一步的需求,比如,需要增加项目工程所能实现的功能,使得项目工程的功能实现更加丰富,或者,减少项目工程中多余的功能,使得项目工程更加精简,此时,用户还可以对得到的类和/或类的属性进行相应的修改。因此,在一些可能的实施方式中,在生成类以及类的属性之后,可以响应于用户对该类以及类的属性的修改操作,对与用户开发的项目工程的类和/或类的属性进行相应的修改。具体的,本实施例中提供了修改类和/或类的属性的两种示例性实施方式。

在一种修改类和/或类的属性的示例性实施方式中,用户如果想要增加项目工程中所能实现的功能,则可以在终端上执行增加相应的类和/或类的属性的操作,然后终端可以响应于用户针对所生成的类以及类的属性的增加操作,增加与该项目工程对应的类和/或类的属性,比如可以是在原有的类以及类的属性上增加新的类和/或类的属性等。

而在另一种修改类和/或类的属性的示例性实施方式中,用户如果想要减少项目工程中多余的功能,则可以在终端上执行删除相应的类和/或类的属性的操作,然后终端响应于用户针对该类和类的属性的删除操作,删除与该项目工程对应的类和/或类的属性,。

基于用户的需求,对生成的类和/或类的属性进行修改,使得用户基于修改后的类以及类的属性所生成得到的项目工程,更加满足用户的需求,从而可以提高用户的使用体验。

进一步的,通常情况下,用户对生成的类以及类的属性进行修改,是因为基于已有的模板无法生成得到修改后的类以及类的属性,因此,为了方便用户以后对于项目工程的开发,可以保存修改后的类以及类的属性。这样,基于修改后的类以及类的属性,可以得到新的项目工程代码模板,从而丰富了已有的项目工程代码模板,为用户在开发项目工程时提供了更多的模板选择。

在一些可能的实施方式中,如果是在生成的类以及类的属性上增加新的类和/或类的属性。具体实现时,在一种示例中,可以只保存新增加的类和/或类的属性,这样,下一次开发相同的项目工程时,则可以在原来所生成的类和类的基础上,增加所保存的新的类和/或类的属性,得到符合用户需求的类以及类的属性;在另一种示例中,可以将新增加的类和/或类的属性增加至用户所选择的项目工程代码模板中,形成一个新的项目工程代码模板,并对该项目工程代码模板进行保存,这样,当用户下一次开发项目工程时,该新增加的项目工程代码模板,可以作为可选的项目工程代码模板呈现给用户。

需要说明的是,如果向用户呈现的预置的可选项目工程代码模板较多,用户需要从多个可选项目工程代码模板中找到自己所需的项目工程代码模板,为了方便用户对于项目工程代码模板的查找,可以预先对已预置的可选项目工程代码模板进行分类,按照类别向用户呈现项目工程代码模板。具体的,在一种示例性的实施方式中,可以响应于用户针对于开发项目工程的触发指令,根据预先对可选项目工程代码模板的分类结果,按照类别呈现已预置的可选项目工程代码模板。由于可选项目工程代码模板是按照类别进行呈现,则用户可以在特定类别下快速查找出所需的项目工程代码模板,进一步提高了用户的使用体验。

此外,鉴于用户可能不止一次的开发项目工程,可以将用户在历史开发项目工程的过程中所使用过的项目工程代码模板,作为向用户呈现的可选项目工程代码模板,以便于用户在后续的开发过程中能够快速查找到所需的项目工程代码模板。作为一种示例,其具体可以包括:

获取用户开发项目工程的历史记录;

将历史记录中用户开发使用过的项目工程代码模板,确定为预置的可选项目工程代码模板。

可以理解的是,用户历史开发项目工程的过程中所使用过的项目工程代码模板,有较大的可能性是用户在开发项目工程的过程中所需使用到的项目工程代码模板。因此,基于用户的历史开发行为,将用户使用过的项目工程代码模板确定为可选项目工程代码模板,可以方便用户在开发项目工程时快速获得需要的项目工程代码模板。

在实际应用中,对于每一个用户,由于其实际工作性质的需要,可能该用户需要开发的项目工程属于同一个或一些特定类型的项目工程。在这种情况下,用户每次开发项目工程时所需的可选项目工程代码模板都是同一类型的。基于此,在一些实施方式中,为了方便用户,可以将符合用户的工作性质的项目工程代码模板呈现给用户。具体地,本实施例还可以包括:

确定用户的属性信息;

将与用户的属性信息对应的项目工程代码模板,作为预置的可选项目工程代码模板。

具体实现时,当用户需要开发项目工程时,用户可以在终端上输入用户的属性信息(例如用户所需开发哪种类型的项目工程、用户的账号等),终端确定用户输入的属性信息后,将与用户的属性信息对应的项目工程代码模板,作为预置的可选项目工程代码模板,其中,该可选项目工程代码模板为用户在开发特定类型项目工程的过程中有较大可能性使用到的项目工程代码模板。

将用户在开发项目工程的过程中,有较大可能性使用到的项目工程代码模板作为可选项目工程代码模板,使得用户能够很方便的查找到所需要的项目工程代码模板,进一步方便了用户对项目工程的开发,提高了用户体验。

本申请实施例中,可以通过预置的项目工程代码模板来生成用户所需的项目工程。具体的,在用户执行针对于开发项目工程的触发指令后,可以响应该触发指令,并向用户呈现预置的可选项目工程代码模板,然后响应于用户对可选项目工程代码模板的选择指令,确定用户选择的项目工程代码模板,并获取用户设计的数据库的表和/或列的配置信息;当用户执行针对于生成项目工程的生成指令后,响应该生成指令,并根据获取的配置信息,基于用户所选择的项目工程代码模板,生成与项目工程对应的类以及类的属性,以便于根据该类以及类的属性生成用户所需项目工程的程序代码,也即为得到用户所需开发的项目工程。由此可见,用户在开发项目工程时,可以不必通过编写程序代码的方式,编写出开发项目工程所需的类以及类的属性,从而使得用户开发项目工程的工作量得到减少。

此外,本申请实施例还提供了一种数据库的生成装置。参阅图3,图3示出了本申请实施例中一种数据库的生成装置的架构示意图,该装置可以包括:

呈现模块301,用于响应于针对开发项目工程的触发指令,呈现预置的可选项目工程代码模板;

确定模块302,用于响应于针对所述可选项目工程代码模板的选择指令,确定用户选择的项目工程代码模板;

获取模块303,用于获取配置信息,所述配置信息表示数据库的表和/或列;

生成模块304,用于响应于生成所述项目工程的生成指令,根据所述配置信息,基于所述用户选择的项目工程代码模板,生成与所述项目工程对应的类以及类的属性,以便于根据所述类以及类的属性生成所述项目工程的代码。

在一些可能的实施方式中,该装置还可以包括:

修改模块,用于响应于针对所述类以及类的属性的修改操作,对与所述项目工程对应的类和/或类的属性进行修改。

在一些可能的实施方式中,所述修改模块具体可以用于响应于针对所述类以及类的属性的增加操作,增加与所述项目工程对应的类和/或类的属性。

在一些可能的实施方式中,所述修改模块具体可以用于响应于针对所述类以及类的属性的删除指令,删除与所述项目工程对应的类和/或类的属性。

在一些可能的实施方式中,该装置还包括:

保存模块,用于在对与所述项目工程对应的类以及类的属性进行修改之后,保存修改后的类以及类的属性。

在一些可能的实施方式中,呈现模块301具体可以用于响应于针对开发项目工程的触发指令,根据预先对所述可选项目工程代码模板的分类结果,按照类别呈现所述预置的可选项目工程代码模板。

在一些可能的实施方式中,该装置还可以包括:

历史记录获取模块,用于获取用户开发项目工程的历史记录;

第一模板确定模块,用于将所述历史记录中用户开发使用过的项目工程代码模板,确定为预置的可选项目工程代码模板。

在一些可能的实施方式中,该装置还可以包括:

信息确定模块,用于确定用户的属性信息;

第二模板确定模块,用于将与所述用户的属性信息对应的项目工程代码模板,作为所述预置的可选项目工程代码模板。

在一些可能的实施方式中,所述类以及类的属性是以可执行的jar文件的形式呈现。

本申请实施例中,可以通过预置的项目工程代码模板来生成用户所需的项目工程。这样,用户在开发项目工程时,可以不必通过编写程序代码的方式,编写出开发项目工程所需的类以及类的属性,从而使得用户开发项目工程的工作量得到减少。

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1