CN113094039A - 一种基于数据库表的代码自动生成系统 - Google Patents

一种基于数据库表的代码自动生成系统 Download PDF

Info

Publication number
CN113094039A
CN113094039A CN202110388479.0A CN202110388479A CN113094039A CN 113094039 A CN113094039 A CN 113094039A CN 202110388479 A CN202110388479 A CN 202110388479A CN 113094039 A CN113094039 A CN 113094039A
Authority
CN
China
Prior art keywords
template engine
layer
workbook
database
engine
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.)
Granted
Application number
CN202110388479.0A
Other languages
English (en)
Other versions
CN113094039B (zh
Inventor
梁海洋
谢敏
张弦弦
赵一鸣
李东海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China South Industries Group Automation Research Institute
Original Assignee
China South Industries Group Automation Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China South Industries Group Automation Research Institute filed Critical China South Industries Group Automation Research Institute
Priority to CN202110388479.0A priority Critical patent/CN113094039B/zh
Publication of CN113094039A publication Critical patent/CN113094039A/zh
Application granted granted Critical
Publication of CN113094039B publication Critical patent/CN113094039B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于数据库表的代码自动生成系统,包括读取解析模块、模板引擎存储模块和代码生成模块;读取解析模块解析数据库业务表工作簿中的内容,并将解析出的工作簿内容发送给代码生成模块;模板引擎存储模块,用于存储sql引擎、dao层引擎、service层引擎、controller层引擎和页面引擎;代码生成模块,自动生成建表sql语句、dao层、service层、controller层和前端页码的代码,解决了开发者在软件开发过程中代码重复率高,时间消耗高的问题,本发明的优点在于简单,易用,快捷,节省了开发者的时间,避免了不同开发者之间代码规范差异问题。

Description

一种基于数据库表的代码自动生成系统
技术领域
本发明涉及一种计算机技术领域,具体涉及一种基于数据库表的代码自动生成系统。
背景技术
目前多数信息化系统都是基于Web应用实现.Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件。
一个Web应用程序是由完成特定任务的各种Web组件(web components)构成的并通过Web将服务展示给外界。在实际应用中,Web应用程序是由多个Servlet、JSP页面、HTML文件以及图像文件等组成。所有这些组件相互协调为用户提供一组完整的服务。
目前成熟的Web软件框架有spring、spring mvc、mybatis等,这里涉及一个成熟的思想就是MVC思想。MVC思想会导致分离的应用程序(输入逻辑,业务逻辑和UI逻辑)的不同方面,同时提供这些元素之间的松耦合。
下面即MVC得三层模型:
模型(Model)封装了应用程序的数据和一般他们会组成的POJO。
视图(View)是负责呈现模型数据和一般它生成的HTML输出,客户端的浏览器能够解释。
控制器(Controller)负责处理用户的请求,并建立适当的模型,并把它传递给视图渲染。
由此形成了web软件开发过程中的三层,即dao层,service层,controller层,包括前端页面view。
随着智能制造的发展,制造业企业对信息化系统的要求越来越多,更新迭代要求越来越高,导致从事制造业应用软件开发的开发者工作量越来越多;对于应用软件程序,很多简单的基础功能,如信息的检索、新增、修改、删除、简单关联查询,集合查询等,还是需要开发者自己去写,从dao层到controller层、包括前端页面,数据库建表sql语句的开发,占用了开发者的大部分时间;虽然现在系统已经高度框架化,但是由于个体的差异,避免不了代码的区别和问题;另外框架的基础配置,框架的搭建还是需要程序员花费很多时间。
发明内容
本发明所要解决的技术问题是:当前软件开发过程复杂,时间跨度长,从需求分析,设计,数据库设计,后台开发,前台开发,测试到实施部署,过程步骤较多,时间消耗过多,所以对于开发者而言,虽然可以在成熟的研发框架上来研发,但是基础功能代码还是需要开发者自己编写,这样就导致开发者在基础编码上消耗过多的时间,本发明提供了解决上述问题的一种基于数据库表的代码自动生成系统。
本发明通过下述技术方案实现:
一种基于数据库表的代码自动生成系统,包括读取解析模块、模板引擎存储模块和代码生成模块;
所述读取解析模块,用于读取导入系统的数据库业务表,获取所述数据库业务表中的工作簿,然后解析工作簿中的内容,并将解析出的工作簿内容发送给所述代码生成模块;
所述模板引擎存储模块,用于存储sql模板引擎、dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎;
所述代码生成模块,从所述模板引擎存储模块中调用sql模板引擎,所述sql模板引擎根据所述读取解析模块解析出的工作簿内容,自动生成建表sql语句;
所述代码生成模块,从所述模板引擎存储模块中分别调用dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎,所述dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎分别根据所述读取解析模块解析出的工作簿内容,自动生成dao层、service层、controller层和前端页码的程序代码。
具体的,所述数据库业务表由开发者根据数据库表的excel模板设计而成,所述数据库业务表包括业务表名称、字段中文名、字段英文名、数据类型、数据长度、是否需要在前端页面展示和是否需要提供查询条件。
具体的,所述数据类型包括字符型、日期型、浮点型、时间型和整数型。
具体的,所述Sql模板引擎自动生成建表sql语句的内部实现逻辑为:根据所述工作簿内容中选择的数据类型,先确定sql语句的格式,然后再根据所述工作簿内容中的表名称,字段名称以及字段类型,来组织sql语句,组织结束之后,将组织的内容写到表名称.sql文件中。
具体的,所述dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎自动生成代码的内部实现逻辑为:首先分别读取dao层、service层、controller层和页面的模板文件,读取模板之后,将所述工作簿内容的对应部分填充到对应模板中,生成dao层、service层、controller层和前端页码的程序代码。
具体的,所述读取解析模块通过文件流读取所述数据库业务表。
具体的,所述读取解析模块使用Workbook对所述数据库业务表进行解析,首先获取所述数据库业务表中的工作簿,然后解析工作簿中的内容,并存放至TableObject中。
本发明提供一种基于数据库表的代码自动生成系统,该系统可以实现根据开发者设计的业务数据库表,自动生成web软件的dao层、service层、controller层、前端页面的代码和数据库建表sql语句,实现了基础功能如检索、新增、修改、删除、关联查询、集合查询等的自动生成。其具体实现过程为:
a.开发者根据数据库表设计的excel模板,设计数据库业务表,包括业务表名称、字段中文名、字段英文名、数据类型(包括字符型、日期型、浮点型、时间型和整数型)、数据长度、是否需要在前端页面展示和是否需要提供查询条件;
b.将设计好的数据库业务表导入系统中,所述系统通过文件流读取数据库业务表文件;
c.读取文件之后,使用Workbook对excel文件进行解析,首先获取excel中的工作簿,然后解析工作簿中的内容,并存放至TableObject中;
d.内容解析之后,调用sql模板引擎,自动生成建表sql语句;sql引擎内部实现逻辑为:根据选择的数据类型,先确定sql语句的格式,然后再根据excel中的表名称,字段名称以及字段类型,来组织sql语句,组织结束之后,将组织的内容写到表名称.sql文件中;
调用dao,service,controller模板引擎,自动生成dao层、service层、controller层和前端页码的程序代码;
系统在生成业务代码后,根据所述数据库业务表解析出的工作簿内容的数据设计配置,自动生成前端页面代码。
本发明具有如下的优点和有益效果:
本发明提出了一种基于数据库表的代码自动生成系统,实现根据数据库表的设计,自动生成应用软件的基础代码,包括基础框架代码,简单的检索、新增、修改、删除、集合查询、关联查询等功能,数据库建表sql语句和页面代码;达到程序员和基础框架和基础功能的解耦,缩减开发者在基础功能上花费的时间,减少由于开发者不同引起的代码规范差异和问题,让开发者有更多精力去处理复杂的业务逻辑。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明的系统结构图。
图2为本发明的工作流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例
当前软件开发过程复杂,时间跨度长,从需求分析,设计,数据库设计,后台开发,前台开发,测试到实施部署,过程步骤较多,时间消耗过多,所以对于开发者而言,虽然可以在成熟的研发框架上来研发,但是基础功能代码还是需要开发者自己编写,这样就导致开发者在基础编码上消耗过多的时间,为了解决上述问题,本实施例提出一种基于数据库表的代码自动生成系统。
如图1所示,一种基于数据库表的代码自动生成系统,包括读取解析模块、模板引擎存储模块和代码生成模块;
读取解析模块,用于读取导入系统的数据库业务表,获取数据库业务表中的工作簿,然后解析工作簿中的内容,并将解析出的工作簿内容发送给代码生成模块;
模板引擎存储模块,用于存储sql模板引擎、dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎;
代码生成模块,从模板引擎存储模块中调用sql模板引擎,sql模板引擎根据读取解析模块解析出的工作簿内容,自动生成建表sql语句;
代码生成模块,从模板引擎存储模块中分别调用dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎,dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎分别根据读取解析模块解析出的工作簿内容,自动生成dao层、service层、controller层和前端页码的程序代码。
数据库业务表由开发者根据数据库表的excel模板设计而成,数据库业务表包括业务表名称、字段中文名、字段英文名、数据类型、数据长度、是否需要在前端页面展示和是否需要提供查询条件。
Sql模板引擎自动生成建表sql语句的内部实现逻辑为:根据工作簿内容中选择的数据类型,先确定sql语句的格式,然后再根据工作簿内容中的表名称,字段名称以及字段类型,来组织sql语句,组织结束之后,将组织的内容写到表名称.sql文件中。
dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎自动生成代码的内部实现逻辑为:首先分别读取dao层、service层、controller层和页面模板文件,读取模板之后,将工作簿内容的对应部分填充到对应模板中,生成dao层、service层、controller层和前端页码的程序代码。
读取解析模块通过文件流调用数据库业务表。
读取解析模块使用Workbook对数据库业务表进行解析,首先获取数据库业务表中的工作簿,然后解析工作簿中的内容,并存放至TableObject中。
本实施例提供一种基于数据库表的代码自动生成系统,该系统可以实现根据开发者设计的业务数据库表,自动生成web软件的dao层、service层、controller层、前端页面的代码和数据库建表sql语句,实现了基础功能如检索、新增、修改、删除、关联查询、集合查询等的自动生成。
如图2所示,其具体实现过程为:
a.开发者根据数据库表设计的excel模板,设计数据库业务表,包括业务表名称、字段中文名、字段英文名、数据类型(包括字符型、日期型、浮点型、时间型和整数型)、数据长度、是否需要在前端页面展示和是否需要提供查询条件;
b.将设计好的数据库业务表导入系统中,系统通过文件流读取数据库业务表文件;
c.读取文件之后,使用Workbook对excel文件进行解析,首先获取excel中的工作簿,然后解析工作簿中的内容,并存放至TableObject中;
d.内容解析之后,调用sql模板引擎,自动生成建表sql语句;sql引擎内部实现逻辑为:根据选择的数据类型,先确定sql语句的格式,然后再根据excel中的表名称,字段名称以及字段类型,来组织sql语句,组织结束之后,将组织的内容写到表名称.sql文件中;
调用dao,service,controller模板引擎,自动生成dao层、service层、controller层和前端页码的程序代码;
系统在生成业务代码后,根据数据库业务表解析出的工作簿内容的数据设计配置,自动生成前端页面代码。
本发明实施例从基于WEB软件研发过程出发,研究开发者在开发过程中遇到的问题,重复工作点,设计实现一种基于数据库表的自动生成代码系统,开发者在完成业务数据库表设计后,即可使用本发明自动生成基础功能代码,包括dao层,service层,controller层,前端页面代码和数据库建表sql,支持生成各种数据库建表语句,包括oracle,mysql,sqlserver等。解决了开发者在软件开发过程中代码重复率高,时间消耗高的问题,本发明实施例的优点在于简单,易用,快捷,节省了开发者的时间,避免了不同开发者之间代码规范差异问题。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于数据库表的代码自动生成系统,其特征在于,包括读取解析模块、模板引擎存储模块和代码生成模块;
所述读取解析模块,用于读取导入系统的数据库业务表,获取所述数据库业务表中的工作簿,然后解析工作簿中的内容,并将解析出的工作簿内容发送给所述代码生成模块;
所述模板引擎存储模块用于存储sql模板引擎、dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎;
所述代码生成模块从所述模板引擎存储模块中调用sql模板引擎,所述sql模板引擎根据所述读取解析模块解析出的工作簿内容,自动生成建表sql语句;
所述代码生成模块从所述模板引擎存储模块中分别调用dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎,所述dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎分别根据所述读取解析模块解析出的工作簿内容,自动生成dao层、service层、controller层和前端页码的程序代码。
2.根据权利要求1所述的一种基于数据库表的代码自动生成系统,其特征在于,所述数据库业务表由开发者根据数据库表的excel模板设计而成,所述数据库业务表包括业务表名称、字段中文名、字段英文名、数据类型、数据长度、是否需要在前端页面展示和是否需要提供查询条件。
3.根据权利要求2所述的一种基于数据库表的代码自动生成系统,其特征在于,所述数据类型包括字符型、日期型、浮点型、时间型和整数型。
4.根据权利要求1所述的一种基于数据库表的代码自动生成系统,其特征在于,所述sql模板引擎自动生成建表sql语句的内部实现逻辑为:根据所述工作簿内容中选择的数据类型,先确定sql语句的格式,然后再根据所述工作簿内容中的表名称,字段名称以及字段类型,来组织sql语句,组织结束之后,将组织的内容写到表名称.sql文件中。
5.根据权利要求1所述的一种基于数据库表的代码自动生成系统,其特征在于,所述dao层模板引擎、service层模板引擎、controller层模板引擎和页面模板引擎自动生成代码的内部实现逻辑为:首先分别读取dao层、service层、controller层和页面的模板文件,读取模板之后,将所述工作簿内容的对应部分填充到对应模板中,生成dao层、service层、controller层和前端页码的代码。
6.根据权利要求1所述的一种基于数据库表的代码自动生成系统,其特征在于,所述读取解析模块通过文件流读取所述数据库业务表。
7.根据权利要求1所述的一种基于数据库表的代码自动生成系统,其特征在于,所述读取解析模块使用Workbook对所述数据库业务表进行解析,首先获取所述数据库业务表中的工作簿,然后解析工作簿中的内容,并存放至TableObject中。
CN202110388479.0A 2021-04-12 2021-04-12 一种基于数据库表的代码自动生成系统 Active CN113094039B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110388479.0A CN113094039B (zh) 2021-04-12 2021-04-12 一种基于数据库表的代码自动生成系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110388479.0A CN113094039B (zh) 2021-04-12 2021-04-12 一种基于数据库表的代码自动生成系统

Publications (2)

Publication Number Publication Date
CN113094039A true CN113094039A (zh) 2021-07-09
CN113094039B CN113094039B (zh) 2023-01-24

Family

ID=76677315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110388479.0A Active CN113094039B (zh) 2021-04-12 2021-04-12 一种基于数据库表的代码自动生成系统

Country Status (1)

Country Link
CN (1) CN113094039B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434133A (zh) * 2021-08-27 2021-09-24 深圳市信润富联数字科技有限公司 应用搭建方法、装置、设备及计算机可读存储介质
CN113805875A (zh) * 2021-09-18 2021-12-17 大连华信计算机技术股份有限公司 一种跨语言的代码自动生成平台

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549472B1 (en) * 2007-06-12 2013-10-01 Fair Isaac Corporation System and method for web design
CN106873974A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 智能代码生成引擎系统及方法
CN108304172A (zh) * 2017-01-13 2018-07-20 北京畅游天下网络技术有限公司 一种web开发方法及web开发引擎
CN112506505A (zh) * 2020-12-16 2021-03-16 江苏龙虎网信息科技股份有限公司 一种代码模板引擎进行程序代码生产的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549472B1 (en) * 2007-06-12 2013-10-01 Fair Isaac Corporation System and method for web design
CN106873974A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 智能代码生成引擎系统及方法
CN108304172A (zh) * 2017-01-13 2018-07-20 北京畅游天下网络技术有限公司 一种web开发方法及web开发引擎
CN112506505A (zh) * 2020-12-16 2021-03-16 江苏龙虎网信息科技股份有限公司 一种代码模板引擎进行程序代码生产的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
林钰杰等: "基于FreeMarker的企业Web应用代码生成器研究", 《信息技术》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434133A (zh) * 2021-08-27 2021-09-24 深圳市信润富联数字科技有限公司 应用搭建方法、装置、设备及计算机可读存储介质
CN113434133B (zh) * 2021-08-27 2022-02-15 深圳市信润富联数字科技有限公司 应用搭建方法、装置、设备及计算机可读存储介质
CN113805875A (zh) * 2021-09-18 2021-12-17 大连华信计算机技术股份有限公司 一种跨语言的代码自动生成平台

Also Published As

Publication number Publication date
CN113094039B (zh) 2023-01-24

Similar Documents

Publication Publication Date Title
US11194793B1 (en) Dynamically materialized views for sheets based data
US11086894B1 (en) Dynamically updated data sheets using row links
CN101334728B (zh) 一种基于xml文档描述的界面生成方法和装置
CN101339500B (zh) 基于xml模式的数据绑定应用程序接口生成方法
CN101271475B (zh) 一种商业智能系统
CN111241454A (zh) 一种生成网页代码的方法、系统和装置
CN113094039B (zh) 一种基于数据库表的代码自动生成系统
WO2009039072A2 (en) System for development and hosting of network applications
CN111488143A (zh) 一种基于Springboot2代码自动生成装置和方法
CN103383645A (zh) 代码生成方法及系统
CN101699397A (zh) 实现Java与XML数据绑定的方法
CN105637478A (zh) 原生移动应用代码的计算机辅助开发
CN109614084A (zh) web程序及其快速开发框架、开发方法与相关设备
CN102455903A (zh) 一种用户应用界面的生成方法
CN113703777B (zh) 基于数据库表的代码生成方法、装置、存储介质和设备
CN105573763B (zh) 一种支持rtos的嵌入式系统建模方法
US20030233343A1 (en) System and method for generating custom business reports for a WEB application
CN109542418A (zh) Service代码生成方法及计算机终端
CN115202663A (zh) 一种数据处理方法、装置和存储介质
CN102779076B (zh) 一种浏览器中进程间通信的方法和装置
CN109460217A (zh) 售票网站后台管理系统构架
CN109597611A (zh) 前端数据流控制组件开发系统、方法、设备及存储介质
CN115310127A (zh) 一种数据脱敏方法及装置
CN113971044A (zh) 组件文档生成方法、装置、设备及可读存储介质
CN106933564A (zh) 通过Fitler模型及注解扩展实现ECP平台数据访问的查询方法

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
GR01 Patent grant
GR01 Patent grant