CN113703777A - 基于数据库表的代码生成方法、装置、存储介质和设备 - Google Patents
基于数据库表的代码生成方法、装置、存储介质和设备 Download PDFInfo
- Publication number
- CN113703777A CN113703777A CN202111035422.9A CN202111035422A CN113703777A CN 113703777 A CN113703777 A CN 113703777A CN 202111035422 A CN202111035422 A CN 202111035422A CN 113703777 A CN113703777 A CN 113703777A
- Authority
- CN
- China
- Prior art keywords
- character string
- information
- field
- generating
- code
- 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
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000013507 mapping Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 22
- 238000011161 development Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000008520 organization Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种基于数据库表的代码生成方法、装置、存储介质和设备,将数据库表信息所示各个字段的信息,映射到与每个字段对应的属性的类中,得到与每个字段对应的成员变量类对象。基于变量类对象,生成与字段对应的成员变量、getter方法、setter方法、SQL语句。将与每个字段对应的成员变量、getter方法、setter方法以及SQL语句,写入代码模板中,并加载代码模板,得到后台代码文件。生成与每个第一页面元素对应的JSP页面以及JavaScript代码。利用本申请所示方案,无需人为添加大量与项目工程相关的字段信息,从而减轻软件开发人员的工作量,提高项目工程的开发效率。
Description
技术领域
本申请涉及代码开发领域,尤其涉及基于数据库表的代码生成方法、装置、存储介质和设备。
背景技术
代码自动生成技术目前已经具有了多年的发展历史且仍持续发展,其中,代码的自动生成模式、生成结果与软件的开发框架息息相关。现今较为常用的开发框架,通常将软件分层为前台应用层、服务层、应用逻辑层和领域模型层。具体的,前台应用层,用于以服务器页面(Java Server Pages,JSP)做页面展示,负责页面流程的控制。服务层,用于实现前台数据的校验,以及实现领域对象和前台数据对象之间的转换,并对外提供服务。应用逻辑层,用于实现业务验证、流程组织等功能,并且各个应用层之间可以相互依赖,从而解决代码复用的问题。领域模型层,用于实现领域对象的数据持久。为此,如何针对基于前台应用层、服务层、应用逻辑层和领域模型层的开发框架,实现代码自动生成一直为本领域的研究热点。
目前,现有的代码自动生成技术,其生成的JSP代码实用性较低,需要人为手动添加大量与项目工程(即上述提及的开发框架)相关的字段信息,给软件开发人员带来了巨大的工作量。
发明内容
本申请提供了一种基于数据库表的代码生成方法、装置、存储介质和设备,目的在于减轻软件开发人员的工作量。
为了实现上述目的,本申请提供了以下技术方案:
一种基于数据库表的代码生成方法,包括:
从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象;
基于与每个所述字段对应的成员变量类对象,生成与每个所述字段对应的成员变量、getter方法和setter方法;
依据所述数据库表信息的表名以及所示的各个所述字段,生成与每个所述字段对应的SQL语句;
将与每个所述字段对应的成员变量、getter方法、setter方法以及SQL语句,写入预设的代码模板中,并加载所述代码模板,得到后台代码文件;
从所述数据库中获取各个所述字段的注释信息,并生成与每个所述注释信息对应的第一页面元素;
生成与每个所述第一页面元素对应的JSP页面以及JavaScript代码;
从预设控件库中获取各个控件的定义信息,并生成与每个所述定义信息对应的第二页面元素;
生成与每个所述第二页面元素对应的JSP页面以及JavaScript代码。
可选的,所述从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象,包括:
预先配置项目工程的工程信息;其中,所述工程信息包括第一字符串、第二字符串和第三字符串;所述第一字符串表征用于存储代码的包路径的名称;所述第二字符串表征用于执行预设功能的模块的名称;所述第三字符串表征所述预设功能的名称;
判断所述第一字符串是否符合第一正则表达式;
在所述第一字符串符合所述第一正则表达式的情况下,判断所述第二字符串是否符合第二正则表达式;
在所述第二字符串符合所述第二正则表达式的情况下,判断所述第三字符串是否符合第三正则表达式;
在所述第三字符串符合所述第三正则表达式的情况下,从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象。
可选的,还包括:
在所述第一字符串不符合所述第一正则表达式的情况下,向用户发送第一提示信息;其中,所述第一提示信息用于指示所述第一字符串不符合规范。
可选的,还包括:
在所述第二字符串不符合所述第二正则表达式的情况下,向用户发送第二提示信息;其中,所述第二提示信息用于指示所述第二字符串不符合规范。
可选的,还包括:
在所述第三字符串不符合所述第三正则表达式的情况下,向用户发送第三提示信息;其中,所述第三提示信息用于指示所述第三字符串不符合规范。
可选的,所述加载所述代码模板,得到后台代码文件之后,还包括:
将所述后台代码文件存放至所述第一字符串所示的包路径下。
一种基于数据库表的代码生成装置,包括:
映射单元,用于从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象;
第一生成单元,用于基于与每个所述字段对应的成员变量类对象,生成与每个所述字段对应的成员变量、getter方法和setter方法;
第二生成单元,用于依据所述数据库表信息的表名以及所示的各个所述字段,生成与每个所述字段对应的SQL语句;
模板加载单元,用于将与每个所述字段对应的成员变量、getter方法、setter方法以及SQL语句,写入预设的代码模板中,并加载所述代码模板,得到后台代码文件;
第三生成单元,用于从所述数据库中获取各个所述字段的注释信息,并生成与每个所述注释信息对应的第一页面元素;
第四生成单元,用于生成与每个所述第一页面元素对应的JSP页面以及JavaScript代码;
第五生成单元,用于从预设控件库中获取各个控件的定义信息,并生成与每个所述定义信息对应的第二页面元素;
第六生成单元,用于生成与每个所述第二页面元素对应的JSP页面以及JavaScript代码。
可选的,所述映射单元具体用于:
预先配置项目工程的工程信息;其中,所述工程信息包括第一字符串、第二字符串和第三字符串;所述第一字符串表征用于存储代码的包路径的名称;所述第二字符串表征用于执行预设功能的模块的名称;所述第三字符串表征所述预设功能的名称;
判断所述第一字符串是否符合第一正则表达式;
在所述第一字符串符合所述第一正则表达式的情况下,判断所述第二字符串是否符合第二正则表达式;
在所述第二字符串符合所述第二正则表达式的情况下,判断所述第三字符串是否符合第三正则表达式;
在所述第三字符串符合所述第三正则表达式的情况下,从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象。
一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行所述的基于数据库表的代码生成方法。
一种基于数据库表的代码生成设备,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行所述的基于数据库表的代码生成方法。
本申请提供的技术方案,从数据库中读取数据库表信息,并将数据库表信息所示各个字段的信息,映射到与每个字段对应的属性的类中,得到与每个字段对应的成员变量类对象。基于与每个字段对应的成员变量类对象,生成与每个字段对应的成员变量、getter方法和setter方法。依据数据库表信息的表名以及所示的各个字段,生成与每个字段对应的SQL语句。将与每个字段对应的成员变量、getter方法、setter方法以及SQL语句,写入预设的代码模板中,并加载代码模板,得到后台代码文件。从数据库中获取各个字段的注释信息,并生成与每个注释信息对应的第一页面元素。生成与每个第一页面元素对应的JSP页面以及JavaScript代码。从预设控件库中获取各个控件的定义信息,并生成与每个定义信息对应的第二页面元素。生成与每个第二页面元素对应的JSP页面以及JavaScript代码。利用本申请所示方案,无需人为手动添加大量与项目工程相关的字段信息,从而有效减轻软件开发人员的工作量,提高项目工程的开发效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于数据库表的代码生成方法的示意图;
图2为本申请实施例提供的一种对应关系示意图;
图3为本申请实施例提供的另一种对应关系示意图;
图4为本申请实施例提供的另一种基于数据库表的代码生成方法的示意图;
图5为本申请实施例提供的一种基于数据库表的代码生成装置的架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请实施例提供的一种基于数据库表的代码生成方法的示意图,包括如下步骤:
S101:预先配置项目工程的工程信息。
其中,项目工程的工程信息包括第一字符串、第二字符串和第三字符串。第一字符串表征用于存储代码的包路径的名称(下述简称包件名称),第二字符串表征用于执行预设功能的模块的名称(下述简称模块名称),第三字符串表征预设功能的名称(下述简称功能名称)。一般来讲,项目工程的工程信息可由用户输入,也可直接从云端获取。
所谓的包路径,即代码的存储路径,在生成代码之后,需将代码存放到对应的文件包中。
预设功能包括但不限于新建数据、删除数据、修改数据、查找数据等数据库操作,通常来讲,预设功能的名称可由大小写英文字符所组成。
在本申请实施例中,各个模块的名称之间可依据“/”区分层级关系。
S102:判断第一字符串是否符合第一正则表达式。
若第一字符串是否符合第一正则表达式,则执行S103,否则执行S104。
其中,第一正则表达式可以为[^a-z]+。
S103:判断第二字符串是否符合第二正则表达式。
若第二字符串是否符合第二正则表达式,则执行S105,否则执行S106。
其中,第二正则表达式可以为[^a-zA-Z/]。
S104:向用户发送第一提示信息。
其中,第一提示信息用于指示包件名称中含有除[a-z]以外的其他字母,不符合相关规范,并请用户重新命名包件。
S105:判断第三字符串是否符合第三正则表达式。
若第三字符串是否符合第三正则表达式,则执行S107,否则执行S108。
其中,第三正则表达式可以为[^a-zA-Z]。
S106:向用户发送第二提示信息。
其中,第二提示信息用于指示模块名称中含有除[^a-zA-Z/]以外的其他字母,不符合相关规范,并请用户重新命名模块。
S107:从数据库中读取数据库表信息,并将数据库表信息所示各个字段的信息,映射到与每个字段对应的属性的类中,得到与每个字段对应的成员变量(MemberVariable)类对象。
在执行S107之后,继续执行S109。
其中,与每个字段对应的属性的类,具体的,可参见图2和图3所示,在图3中,data_type代表数据类型,javaType代表java类,jdbc Type代表jdbc类。
需要说明的是,本申请实施例所示的数据库,包括但不限于为关系型数据库。
S108:向用户发送第三提示信息。
其中,第三提示信息用于指示功能名称中含有除[^a-zA-Z]以外的其他字母,不符合相关规范,并请用户重新命名功能。
S109:基于与每个字段对应的成员变量类对象,生成与每个字段对应的成员变量、getter方法和setter方法。
其中,getter方法和setter方法为本领域技术人员所熟悉的公知常识,这里不再赘述。
S110:依据数据库表信息的表名以及所示的各个字段,生成与每个字段对应的SQL语句。
其中,数据库表信息所示的各个字段包括但不限于为:insert Columns/insertValues/up date Set/where Conditions。SQL语句所实现的数据库操作,包括但不限于为插入字段(INSERT)、删除字段(DELETE)、修改字段(UPDATE)、选取字段(SELECT)等。
S111:将与每个字段对应的成员变量、getter方法、setter方法以及SQL语句,写入预设的代码模板中,并加载代码模板,得到后台代码文件。
S112:将后台代码文件存放至第一字符串所示的包路径下。
S113:从数据库中获取各个字段的注释信息,并生成与每个注释信息对应的第一页面元素。
其中,各个字段的注释信息,一般由数据库开发人员预先配置,每个字段的注释信息包括字段的中文名称、输入类型和字典表编码。
所谓的中文名称,即字段在JSP页面上所显示的名称。
输入类型包括文本框(其对应的标识为NOR或NORMAL)、字典表空间(其对应的标识为DIC或DICTIONARY)、日期控件(其对应的标识为DATE)、机构树控件(其对应的标识为ORG)、员工控件(其对应的标识为STA或STAFF)、供应商控件(其对应的标识为SUP)。
若字段的输入类型为字典表控件,则字段的注释信息需记录有字典表的编码。
S114:生成与每个第一页面元素对应的JSP页面以及JavaScript代码。
其中,JSP页面的类型包括查询页面、详情页面、新增页面、编辑页面和删除页面。
S115:从预设控件库中获取各个控件的定义信息,并生成与每个定义信息对应的第二页面元素。
其中,各个控件包括但不限于为字典表控件、日期控件、机构数控件、员工控件、供应商控件。
需要说明的是,第一页面元素和第二页面元素,均为页面元素的一种具体的表现形式。
S116:生成与每个第二页面元素对应的JSP页面以及JavaScript代码。
综上所述,利用本实施例所示方案,无需人为手动添加大量与项目工程相关的字段信息,从而有效减轻软件开发人员的工作量,提高项目工程的开发效率。
需要说明的是,上述实施例提及的S101,为本申请所示基于数据库表的代码生成方法的一种可选的实现方式。另外,上述实施例提及的S112也为本申请所示基于数据库表的代码生成方法的一种可选的实现方式。为此,上述实施例提及的流程,可以概括为图4所示的方法。
如图4所示,为本申请实施例提供的另一种基于数据库表的代码生成方法的示意图,包括如下步骤:
S401:从数据库中读取数据库表信息,并将数据库表信息所示各个字段的信息,映射到与每个字段对应的属性的类中,得到与每个字段对应的成员变量类对象。
S402:基于与每个字段对应的成员变量类对象,生成与每个字段对应的成员变量、getter方法和setter方法。
S403:依据数据库表信息的表名以及所示的各个字段,生成与每个字段对应的SQL语句。
S404:将与每个字段对应的成员变量、getter方法、setter方法以及SQL语句,写入预设的代码模板中,并加载代码模板,得到后台代码文件。
S405:从数据库中获取各个字段的注释信息,并生成与每个注释信息对应的第一页面元素。
S406:生成与每个第一页面元素对应的JSP页面以及JavaScript代码。
S407:从预设控件库中获取各个控件的定义信息,并生成与每个定义信息对应的第二页面元素。
S408:生成与每个第二页面元素对应的JSP页面以及JavaScript代码。
综上所述,利用本实施例所示方案,无需人为手动添加大量与项目工程相关的字段信息,从而有效减轻软件开发人员的工作量,提高项目工程的开发效率。
与上述本申请实施例提供的基于数据库表的代码生成方法相对应,本申请实施例还提供了一种基于数据库表的代码生成装置。
如图5所示,为本申请实施例提供的一种基于数据库表的代码生成装置的架构示意图,包括:
映射单元100,用于从数据库中读取数据库表信息,并将数据库表信息所示各个字段的信息,映射到与每个字段对应的属性的类中,得到与每个字段对应的成员变量类对象。
其中,映射单元100具体用于:预先配置项目工程的工程信息;其中,工程信息包括第一字符串、第二字符串和第三字符串;第一字符串表征用于存储代码的包路径的名称;第二字符串表征用于执行预设功能的模块的名称;第三字符串表征预设功能的名称;判断第一字符串是否符合第一正则表达式;在第一字符串符合第一正则表达式的情况下,判断第二字符串是否符合第二正则表达式;在第二字符串符合第二正则表达式的情况下,判断第三字符串是否符合第三正则表达式;在第三字符串符合第三正则表达式的情况下,从数据库中读取数据库表信息,并将数据库表信息所示各个字段的信息,映射到与每个字段对应的属性的类中,得到与每个字段对应的成员变量类对象。
映射单元100还用于:在第一字符串不符合第一正则表达式的情况下,向用户发送第一提示信息;其中,第一提示信息用于指示第一字符串不符合规范。
映射单元100还用于:在第二字符串不符合第二正则表达式的情况下,向用户发送第二提示信息;其中,第二提示信息用于指示第二字符串不符合规范。
映射单元100还用于:在第三字符串不符合第三正则表达式的情况下,向用户发送第三提示信息;其中,第三提示信息用于指示第三字符串不符合规范。
第一生成单元200,用于基于与每个字段对应的成员变量类对象,生成与每个字段对应的成员变量、getter方法和setter方法。
第二生成单元300,用于依据数据库表信息的表名以及所示的各个字段,生成与每个字段对应的SQL语句。
模板加载单元400,用于将与每个字段对应的成员变量、getter方法、setter方法以及SQL语句,写入预设的代码模板中,并加载代码模板,得到后台代码文件。
第三生成单元500,用于从数据库中获取各个字段的注释信息,并生成与每个注释信息对应的第一页面元素。
第四生成单元600,用于生成与每个第一页面元素对应的JSP页面以及JavaScript代码。
第五生成单元700,用于从预设控件库中获取各个控件的定义信息,并生成与每个定义信息对应的第二页面元素。
第六生成单元800,用于生成与每个第二页面元素对应的JSP页面以及JavaScript代码。
存储单元900,用于将后台代码文件存放至第一字符串所示的包路径下。
综上所述,利用本实施例所示方案,无需人为手动添加大量与项目工程相关的字段信息,从而有效减轻软件开发人员的工作量,提高项目工程的开发效率。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,程序执行上述本申请提供的基于数据库表的代码生成方法。
本申请还提供了一种基于数据库表的代码生成设备,包括:处理器、存储器和总线。处理器与存储器通过总线连接,存储器用于存储程序,处理器用于运行程序,其中,程序运行时执行上述本申请提供的基于数据库表的代码生成方法,包括如下步骤:
从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象;
基于与每个所述字段对应的成员变量类对象,生成与每个所述字段对应的成员变量、getter方法和setter方法;
依据所述数据库表信息的表名以及所示的各个所述字段,生成与每个所述字段对应的SQL语句;
将与每个所述字段对应的成员变量、getter方法、setter方法以及SQL语句,写入预设的代码模板中,并加载所述代码模板,得到后台代码文件;
从所述数据库中获取各个所述字段的注释信息,并生成与每个所述注释信息对应的第一页面元素;
生成与每个所述第一页面元素对应的JSP页面以及JavaScript代码;
从预设控件库中获取各个控件的定义信息,并生成与每个所述定义信息对应的第二页面元素;
生成与每个所述第二页面元素对应的JSP页面以及JavaScript代码。
可选的,所述从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象,包括:
预先配置项目工程的工程信息;其中,所述工程信息包括第一字符串、第二字符串和第三字符串;所述第一字符串表征用于存储代码的包路径的名称;所述第二字符串表征用于执行预设功能的模块的名称;所述第三字符串表征所述预设功能的名称;
判断所述第一字符串是否符合第一正则表达式;
在所述第一字符串符合所述第一正则表达式的情况下,判断所述第二字符串是否符合第二正则表达式;
在所述第二字符串符合所述第二正则表达式的情况下,判断所述第三字符串是否符合第三正则表达式;
在所述第三字符串符合所述第三正则表达式的情况下,从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象。
可选的,还包括:
在所述第一字符串不符合所述第一正则表达式的情况下,向用户发送第一提示信息;其中,所述第一提示信息用于指示所述第一字符串不符合规范。
可选的,还包括:
在所述第二字符串不符合所述第二正则表达式的情况下,向用户发送第二提示信息;其中,所述第二提示信息用于指示所述第二字符串不符合规范。
可选的,还包括:
在所述第三字符串不符合所述第三正则表达式的情况下,向用户发送第三提示信息;其中,所述第三提示信息用于指示所述第三字符串不符合规范。
可选的,所述加载所述代码模板,得到后台代码文件之后,还包括:
将所述后台代码文件存放至所述第一字符串所示的包路径下。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于数据库表的代码生成方法,其特征在于,包括:
从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象;
基于与每个所述字段对应的成员变量类对象,生成与每个所述字段对应的成员变量、getter方法和setter方法;
依据所述数据库表信息的表名以及所示的各个所述字段,生成与每个所述字段对应的SQL语句;
将与每个所述字段对应的成员变量、getter方法、setter方法以及SQL语句,写入预设的代码模板中,并加载所述代码模板,得到后台代码文件;
从所述数据库中获取各个所述字段的注释信息,并生成与每个所述注释信息对应的第一页面元素;
生成与每个所述第一页面元素对应的JSP页面以及JavaScript代码;
从预设控件库中获取各个控件的定义信息,并生成与每个所述定义信息对应的第二页面元素;
生成与每个所述第二页面元素对应的JSP页面以及JavaScript代码。
2.根据权利要求1所述的方法,其特征在于,所述从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象,包括:
预先配置项目工程的工程信息;其中,所述工程信息包括第一字符串、第二字符串和第三字符串;所述第一字符串表征用于存储代码的包路径的名称;所述第二字符串表征用于执行预设功能的模块的名称;所述第三字符串表征所述预设功能的名称;
判断所述第一字符串是否符合第一正则表达式;
在所述第一字符串符合所述第一正则表达式的情况下,判断所述第二字符串是否符合第二正则表达式;
在所述第二字符串符合所述第二正则表达式的情况下,判断所述第三字符串是否符合第三正则表达式;
在所述第三字符串符合所述第三正则表达式的情况下,从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象。
3.根据权利要求2所述的方法,其特征在于,还包括:
在所述第一字符串不符合所述第一正则表达式的情况下,向用户发送第一提示信息;其中,所述第一提示信息用于指示所述第一字符串不符合规范。
4.根据权利要求2所述的方法,其特征在于,还包括:
在所述第二字符串不符合所述第二正则表达式的情况下,向用户发送第二提示信息;其中,所述第二提示信息用于指示所述第二字符串不符合规范。
5.根据权利要求2所述的方法,其特征在于,还包括:
在所述第三字符串不符合所述第三正则表达式的情况下,向用户发送第三提示信息;其中,所述第三提示信息用于指示所述第三字符串不符合规范。
6.根据权利要求2所述的方法,其特征在于,所述加载所述代码模板,得到后台代码文件之后,还包括:
将所述后台代码文件存放至所述第一字符串所示的包路径下。
7.一种基于数据库表的代码生成装置,其特征在于,包括:
映射单元,用于从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象;
第一生成单元,用于基于与每个所述字段对应的成员变量类对象,生成与每个所述字段对应的成员变量、getter方法和setter方法;
第二生成单元,用于依据所述数据库表信息的表名以及所示的各个所述字段,生成与每个所述字段对应的SQL语句;
模板加载单元,用于将与每个所述字段对应的成员变量、getter方法、setter方法以及SQL语句,写入预设的代码模板中,并加载所述代码模板,得到后台代码文件;
第三生成单元,用于从所述数据库中获取各个所述字段的注释信息,并生成与每个所述注释信息对应的第一页面元素;
第四生成单元,用于生成与每个所述第一页面元素对应的JSP页面以及JavaScript代码;
第五生成单元,用于从预设控件库中获取各个控件的定义信息,并生成与每个所述定义信息对应的第二页面元素;
第六生成单元,用于生成与每个所述第二页面元素对应的JSP页面以及JavaScript代码。
8.根据权利要求7所述的装置,其特征在于,所述映射单元具体用于:
预先配置项目工程的工程信息;其中,所述工程信息包括第一字符串、第二字符串和第三字符串;所述第一字符串表征用于存储代码的包路径的名称;所述第二字符串表征用于执行预设功能的模块的名称;所述第三字符串表征所述预设功能的名称;
判断所述第一字符串是否符合第一正则表达式;
在所述第一字符串符合所述第一正则表达式的情况下,判断所述第二字符串是否符合第二正则表达式;
在所述第二字符串符合所述第二正则表达式的情况下,判断所述第三字符串是否符合第三正则表达式;
在所述第三字符串符合所述第三正则表达式的情况下,从数据库中读取数据库表信息,并将所述数据库表信息所示各个字段的信息,映射到与每个所述字段对应的属性的类中,得到与每个所述字段对应的成员变量类对象。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1-6任一所述的基于数据库表的代码生成方法。
10.一种基于数据库表的代码生成设备,其特征在于,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-6任一所述的基于数据库表的代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111035422.9A CN113703777A (zh) | 2021-09-02 | 2021-09-02 | 基于数据库表的代码生成方法、装置、存储介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111035422.9A CN113703777A (zh) | 2021-09-02 | 2021-09-02 | 基于数据库表的代码生成方法、装置、存储介质和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113703777A true CN113703777A (zh) | 2021-11-26 |
Family
ID=78659989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111035422.9A Pending CN113703777A (zh) | 2021-09-02 | 2021-09-02 | 基于数据库表的代码生成方法、装置、存储介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113703777A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579112A (zh) * | 2022-02-25 | 2022-06-03 | 北京圣博润高新技术股份有限公司 | 辅助系统开发的方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189383A (zh) * | 2018-08-28 | 2019-01-11 | 厦门海迈科技股份有限公司 | 代码文件的生成方法、装置、计算设备和存储介质 |
CN110674625A (zh) * | 2019-08-29 | 2020-01-10 | 浙江数链科技有限公司 | 代码生成的方法、装置、计算机设备和存储介质 |
CN112346720A (zh) * | 2020-10-22 | 2021-02-09 | 杭州安恒信息技术股份有限公司 | 基于sql生成自定义代码的方法、设备和电子装置 |
-
2021
- 2021-09-02 CN CN202111035422.9A patent/CN113703777A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189383A (zh) * | 2018-08-28 | 2019-01-11 | 厦门海迈科技股份有限公司 | 代码文件的生成方法、装置、计算设备和存储介质 |
CN110674625A (zh) * | 2019-08-29 | 2020-01-10 | 浙江数链科技有限公司 | 代码生成的方法、装置、计算机设备和存储介质 |
CN112346720A (zh) * | 2020-10-22 | 2021-02-09 | 杭州安恒信息技术股份有限公司 | 基于sql生成自定义代码的方法、设备和电子装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579112A (zh) * | 2022-02-25 | 2022-06-03 | 北京圣博润高新技术股份有限公司 | 辅助系统开发的方法、装置、设备及存储介质 |
CN114579112B (zh) * | 2022-02-25 | 2023-10-20 | 北京圣博润高新技术股份有限公司 | 辅助系统开发的方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795455B (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
US8032544B2 (en) | Methods and apparatus for generating dynamic program files based on input queries that facilitate use of persistent query services | |
CN108874924B (zh) | 搜索服务的创建方法、装置及计算机可读存储介质 | |
CN106951231B (zh) | 一种计算机软件开发方法及装置 | |
CN106469140A (zh) | 一种报表生成系统及其方法 | |
CN110019111B (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN107330014B (zh) | 一种数据表的创建方法与设备 | |
WO2021013057A1 (zh) | 数据管理方法、装置、设备与计算机可读存储介质 | |
CN113094039B (zh) | 一种基于数据库表的代码自动生成系统 | |
US8433729B2 (en) | Method and system for automatically generating a communication interface | |
CN113703777A (zh) | 基于数据库表的代码生成方法、装置、存储介质和设备 | |
US20030233343A1 (en) | System and method for generating custom business reports for a WEB application | |
CN117194389A (zh) | 基于sql的数据库兼容方法和装置、电子设备和存储介质 | |
CN112835638A (zh) | 一种基于嵌入式应用程序的配置信息管理方法及装置 | |
US11900269B2 (en) | Method and apparatus for managing knowledge base, device and medium | |
CN110489401B (zh) | 一种数据库对象的部署方法及装置 | |
US20210049158A1 (en) | Natural language interface to databases | |
CN114925142A (zh) | 一种orm框架的多类型数据库兼容方法、装置、设备及介质 | |
CN115310127A (zh) | 一种数据脱敏方法及装置 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN112148450A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN114764558A (zh) | 一种sql方言转换方法、装置、系统及存储介质 | |
CN113326401B (zh) | 字段血缘生成方法及系统 | |
WO2024109376A1 (zh) | 一种数据处理的方法、电子设备及存储介质 | |
CN117764034A (zh) | 基于FreeMarker模板引擎生成实体类实现属性校验的方法及系统 |
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 |