CN105487864A - 代码自动生成的方法和装置 - Google Patents

代码自动生成的方法和装置 Download PDF

Info

Publication number
CN105487864A
CN105487864A CN201510837148.5A CN201510837148A CN105487864A CN 105487864 A CN105487864 A CN 105487864A CN 201510837148 A CN201510837148 A CN 201510837148A CN 105487864 A CN105487864 A CN 105487864A
Authority
CN
China
Prior art keywords
code
module
configuration information
information
business
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
CN201510837148.5A
Other languages
English (en)
Other versions
CN105487864B (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201510837148.5A priority Critical patent/CN105487864B/zh
Publication of CN105487864A publication Critical patent/CN105487864A/zh
Application granted granted Critical
Publication of CN105487864B publication Critical patent/CN105487864B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种代码自动生成的方法和装置,通过编写复杂的查询语言,突破现有技术中只能针对单表进行代码生成的限制,并可根据业务需求对项目的业务模块进行详细配置,使生成出来的代码最大化的符合业务需求。该方法包括:根据业务需求新增业务模块,并利用SQL查询语句配置所述业务模块;将所述业务模块的配置信息保存到数据库中;根据所述配置信息生成代码文件。

Description

代码自动生成的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码自动生成的方法和装置。
背景技术
Web技术广泛的应用于各行各业,像电信、银行、政府、企业、电商等各行业的应用***均可通过Web技术开发实现。随着Web项目的规模越来越庞大,开发周期越来越长,开发成本越来越高,人们越来越青睐能够简单、快速、自动、智能的进行Web项目开发的自动开发平台。
目前已有的自动开发平台实现方式主要是通过个人编写的代码生成器进行代码的自动生成,即开发一个代码生成器,实现按照制定的逻辑自动生成代码。在进行业务模块开发时,首先选择一张业务主表,作为自动代码生成的基础;然后通过个人编写的代码生成器的已有逻辑对选择的业务主表进行自动代码生成,从而减少手工编写代码的工作量。
现有的自动开发平台能够解决项目开发中代码编写的问题,但是仍具有一定的局限性:
1.个人编写的代码生成器逻辑固定、死板,代码只有一种生成方式,无法应对变化多样的需求内容;
2.代码生成器生成的代码只是通过业务主表的字段硬性生成对应的代码内容,没有提供对每个字段进行详细设置的功能,生成后的代码还需要根据需求进行大量修改。
3.代码生成器只能对单表进行处理,对于多表联合查询的情况无法处理,很难适应所有的业务场景。
4.代码生成器大多结合Hibernate来实现数据的持久化操作,写法不够灵活,业务需求变更后,进行代码修改时异常复杂困难。
5.代码生成器生成的代码一般都进行了自定义的封装处理,使用时需要了解对应的封装逻辑,会产生二次学习成本。
发明内容
有鉴于此,本发明提供一种代码自动生成的方法和装置,通过编写复杂的查询语言,突破现有技术中只能针对单表进行代码生成的限制,并可根据业务需求对项目的业务模块进行详细配置,使生成出来的代码最大化的符合业务需求。
为实现上述目的,根据本发明的一个方面,提供了一种代码自动生成的方法。
本发明的代码自动生成的方法包括:根据业务需求新增业务模块,并利用SQL查询语句配置所述业务模块;将所述业务模块的配置信息保存到数据库中;根据所述配置信息生成代码文件。
可选地,利用SQL查询语句配置所述业务模块包括:根据SQL查询语句生成初始化配置信息,所述初始化配置信息包括:涉及的单表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息;根据业务需求对初始化配置信息进行修改。
可选地,将所述业务模块的配置信息保存到数据库中包括:利用Mybatis持久层框架将所述业务模块的所有配置信息以配置表的形式保存到数据库中。
可选地,根据所述配置信息生成代码文件包括:通过调用Velocity模板引擎获取代码模板,将所述代码模板与所述业务模块的配置信息结合生成前台代码文件和后台代码文件;通过调用MyBatisGenerator文件生成工具,生成MyBatis持久层框架所需的代码文件。
可选地,所述方法还包括:当业务需求变更时,根据业务需求变更的内容修改相应的配置信息并加以保存;根据修改后的配置信息选择需要重新生成的代码文件,进行代码重新生成。
可选地,所述方法还包括:当所述业务模块开发完成,不需要再进行代码生成和变更时,锁定所述业务模块。
为实现上述目的,根据本发明的一个方面,提供了一种代码自动生成的装置。
本发明的代码自动生成的装置包括:配置模块,用于根据业务需求新增业务模块,并利用SQL查询语句配置所述业务模块;保存模块,用于将所述业务模块的配置信息保存到数据库中;代码生成模块,用于根据所述配置信息生成代码文件。
可选地,所述配置模块还用于:根据SQL查询语句生成初始化配置信息,所述初始化配置信息包括:涉及的单表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息;根据业务需求对初始化配置信息进行修改。
可选地,所述保存模块还用于:利用Mybatis持久层框架将所述业务模块的所有配置信息以配置表的形式保存到数据库中。
可选地,所述代码生成模块还用于:通过调用Velocity模板引擎获取代码模板,将所述代码模板与所述业务模块的配置信息结合生成前台代码文件和后台代码文件;通过调用MyBatisGenerator文件生成工具,生成MyBatis持久层框架所需的代码文件。
可选地,所述装置还用于:当业务需求变更时,配置模块根据业务需求变更的内容修改相应的配置信息;保存模块保存修改后的配置信息;代码生成模块根据修改后的配置信息选择需要重新生成的代码文件,进行代码重新生成。
可选地,所述配置模块还用于:当所述业务模块开发完成,不需要再进行代码生成和变更时,锁定所述业务模块。
根据本发明的技术方案,在web项目开发的过程中,以业务模块为单位,通过配置SQL查询语句,突破现有技术中只能进行单表代码生成的限制,从而实现可以处理任何的业务逻辑;通过对业务模块各字段的详细配置,从而使生成出来的代码最大化的符合业务需求;通过利用Mybatis持久层框架对配置信息以配置表的形式进行持久化,从而使得可以处理的业务范围更宽广,可用性更高,而且生成的代码易读性好,修改难度低,方便项目的开发;通过调用Velocity模板引擎生成代码文件,实现代码生成样式的高度可自定义,从而可以适应不同类型的业务需求开发;通过利用MyBatisGenerator文件生成工具生成MyBatis持久层框架所需的代码文件,从而可以保证单表公共文件的规范统一和同MyBatis的结合,实现对数据的持久化操作;此外,由于使用了配置表的方式保存业务模块的配置信息,从而可以在进行代码修改的时候,直接选择相应的配置表进行修改,并重新生成对应的代码,实现代码生成的可控性;在某一业务模块开发完成后,通过锁定动作,可以实现对该业务模块的锁定,以防止生成的代码因被误操作而覆盖。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的代码自动生成的方法的主要步骤的示意图;
图2是根据本发明实施例的代码自动生成的装置的主要模块的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的代码自动生成的方法的主要步骤的示意图。
如图1所示,本发明实施例的代码自动生成的方法主要包括如下步骤:
步骤S11:根据业务需求新增业务模块,并利用SQL查询语句配置所述业务模块。
步骤S12:将所述业务模块的配置信息保存到数据库中。
本发明的技术方案中,利用开源技术搭建一web项目自动开发平台。其中,主要在MVC框架(MVC,即ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑)内进行项目的开发。本发明中主要利用springMVC框架。SpringMVC框架属于SpringFrameWork的后续产品,提供了构建Web应用程序的全功能MVC模块。SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色。
本发明中,根据业务需求对业务模块的新增与配置主要是在SpringMVC框架的展示层进行。SpringMVC展示层(即视图view)的展示技术可以是基于Jquery语言和JqueryEasyUI展示控件库的技术支持。通过JqueryEasyUI提供的组件进行页面布局,通过Jquery提供的前台JavaScript操作方法实现业务逻辑。例如,在开发一个学生管理***的过程中,学生业务模块的学生信息表里可能涉及到性别字段,此时,可以通过Jquery提供的前台JavaScript方法获取对应的性别数据,再通过JqueryEasyUI的下拉框组件在前台页面中显示性别选项。
在本发明的实施例中,web项目的开发以模块为单位进行,根据业务需求新增业务模块,并对业务模块进行详细配置。即首先是根据业务需求新增一个业务模块;其次配置SQL查询语句,根据配置的SQL查询语句初始化配置信息,将业务模块所涉及到的单表和字段等的信息获取出来,此时获取的信息是业务模块初始化的默认配置信息,包括涉及的单表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息;最后对生成的初始化配置信息根据业务需求进行修改。
其中对生成的初始化配置信息根据业务需求进行修改包括:配置SQL查询语句后生成初始化的涉及的单表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息;根据业务需求对初始化的涉及的单表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息进行详细配置。
业务模块配置的过程中,需要将业务模块的所有配置信息保存到数据库中。本发明中,利用Mybatis持久层框架将业务模块的所有配置信息以配置表的形式保存到数据库中。Mybatis持久层框架是一个基于Java的持久层框架,支持直接编写sql语句,将sql语句保存在xml配置文件中,程序直接读取即可,可以实现任何复杂的业务逻辑处理。而现有技术是将字段的配置信息写入代码中,修改起来不灵活,本发明中利用Mybatis持久层框架进行配置信息的保存,使得业务模块可处理的业务范围更宽广,可用性更高,而且生成的代码易读性好,在代码生成后可以根据业务需求对代码进行修改,并且直接选择相应的配置表对应的配置信息进行修改即可,修改难度较利用Hibernate处理复杂的业务的难度降低。
业务模块的具体配置过程如下所述:
根据业务需求新增一个模块。录入模块名称、模块代码、开发人员、后台文件生成后所在的包路径、前台文件生成后所在的文件夹路径等业务模块基本配置信息。根据录入的模块代码自动生成前台文件和后台文件的文件名称,并将业务模块基本配置信息保存到数据库的业务模块配置主表中。
新增业务模块后如果需要对模块信息进行修改,可以选择对应的模块信息记录,通过修改模块界面进行模块配置信息的修改。
新增业务模块完成后,对业务模块进行详细配置。包括SQL查询语句配置、涉及表信息配置、Grid基本信息配置、Grid列信息配置、Form基本信息配置、Form列信息配置。
根据模块的业务需求整理出查询语句,并将查询语句内容对应录入到展示层中配置业务模块界面的select语句部分、from语句部分、where语句部分、groupby语句部分和orderby语句部分等,录入完成后进行保存。保存过程中开发平台对查询语句进行校验,校验查询语句是否能够正确执行,如不能正确执行,则提示进行修改,如能正确执行,则利用Mybatis将查询语句保存到数据库中的业务模块配置主表中的查询SQL字段中。
查询语句保存成功后,对业务模块进行初始化,生成如下初始化配置信息:
i.根据配置的业务模块查询语句获取出其中所涉及的单表信息,如表名、表别名,并生成单表对应的实体类名、实体文件存放的包路径、SqlMap文件存放的包路径和Mapper文件存放的包路径,同时默认设置单表的是否参与持久化字段的值,最后利用Mybatis将每个单表相关信息作为一条记录保存到数据库中的模块涉及表配置表中;
ii.在数据库的Grid配置主表中生成一条记录,默认设置列表名称、Grid高度、Grid宽度、每页行数、是否单选、是否可编辑等字段信息;
iii.根据查询语句中所查询的所有字段信息,在数据库的Grid列配置信息表中为每个字段生成一条记录信息,生成时自动获取字段对应的字段名称、字段别名、字段注释、字段所属表,自动识别字段是否为主键,根据识别结果回写是否显示和是否可编辑对应值,自动判断字段的类型,根据字段类型回写显示类型、列编辑器参数、下拉框转码类型等内容;
iv.在数据库的Form配置主表中生成三条记录,对应三种Form类型,分别为查询Form、新增Form、修改Form,默认设置每条记录的每行列数、是否显示、是否生成等字段信息;
v.根据查询语句中所查询的所有字段信息,在数据库的Form配置详细表中为查询Form、新增Form、修改Form三类Form分别生成对应的记录信息。生成时自动获取字段对应的字段名称、字段别名、字段注释、字段所属表,自动识别字段是否为主键,根据识别结果智能回写是否显示和是否可编辑对应值,自动判断字段的类型,根据字段类型自动回写显示类型、前台校验规则、前台校验提示信息、查询类型、下拉框转码类型等内容。
初始化处理完成后,将初始化信息返回到展示层的操作界面的对应列表中,此时可以结合业务需求对初始化信息进行进一步修改,如修改某些单表不进行持久化操作、Grid的高度和宽度、Grid是否可编辑、Grid中的列是否显示、Grid中的列是否为下拉框和对应的转码类型、查询Form中那些字段需要显示、查询Form中查询字段的查询类型,以及新增Form和修改Form中字段校验规则和校验提示信息等。并利用Mybatis持久层框架将修改后的配置信息保存到数据库中。本发明中用到的数据库例如可以是MySQL(关系型数据库管理***)数据库。
在将业务模块配置完成,并将配置信息保存到数据库后,从步骤S13开始处理。
步骤S13:根据所述配置信息生成代码文件。
代码的生成主要在SpringMVC框架的控制层(控制器controller)中进行。根据保存在数据库中的配置信息生成代码文件,包括:通过调用Velocity模板引擎获取代码模板,将所述代码模板与业务模块的配置信息结合生成前台代码文件和后台代码文件;通过调用MyBatisGenerator文件生成工具,生成MyBatis持久层框架所需的代码文件。
其中,Velocity模板引擎是一个基于java的模板引擎(templateengine)。它允许任何人仅仅使用简单的模板语言(templatelanguage)来引用由java代码定义的对象。在本发明中,使用Velocity模板引擎,实现对预先定义的代码模板进行自定义。对预先定义的代码模板进行自定义可以是:通过对已有的模板进行修改,实现修改后的代码模板更加符合开发的业务需求;此外,还可以复制已有模板,在其基础上重新建立自己的模板。
开发平台调用Velocity模板引擎,获取代码模板,然后将业务模块的配置信息传入代码模板中,以替换对应的属性,从而实现将配置数据与代码模板相结合,从而生成前台代码文件和后台代码文件。这些文件包括以下内容:前台主界面Main.jsp、前台主界面Main.js、前台新增界面Add.jsp、前台新增界面Add.js、前台修改界面Update.jsp、前台修改界面Update.js、后台Controller.java、后台Service接口IService.java、后台Service实现类ServiceImpl.java、后台DAO接口IDAO.java、后台DAO实现类DAOImpl.java、后台业务实体BusiEntity.java、后台业务sqlmap文件sqlmap.xml。
MyBatisGenerator是文件生成工具,使用MyBatisGenerator文件生成工具生成MyBatis持久层框架所需的文件内容,包括查询SQL中涉及到的单表对应的映射文件和实体文件。
开发平台调用MyBatisGenerator文件生成工具,结合MyBatisGeneratorConfig.xml配置文件中的配置信息,自动生成所有单表对应的MyBatis持久层框架所需的代码文件,包括以下内容:后台业务sqlmap文件sqlmap.xml、后台单表公共文件Entity.java和Mapper.xml。
经过该步骤的代码生成,可以实现根据业务模块的详细配置信息生成出高度符合业务需求的前台代码文件、后台代码文件和单表公共持久化文件,开发人员基本不需要再进行代码修改,即可实现自己的业务需求。
本发明实施例的代码自动生成的方法还可以包括:当业务需求变更时,根据业务需求修改业务模块相应的配置信息并保存;根据修改后的配置信息选择需要重新生成的代码文件,进行代码重新生成。
通过开发平台自动生成完代码后,如果业务人员提出了需求变更,只需要根据需求变更内容重新进行业务模块的配置,将对应的配置信息调整为符合需求变更后的内容,并将变更后的配置信息保存到数据库中,然后选择需要重新生成的代码文件进行代码重新生成。对于不涉及需求变更或已进行过修改的代码文件,可以不进行选择,这样可以实现代码生成的可控性,防止不需要变动的代码文件被覆盖掉。
代码重新生成时,根据重新配置的信息对选择需要重新生成的文件进行自动代码生成的过程如前所述,此处不再赘述。
本发明实施例的代码自动生成的方法还可以包括:当业务模块开发完成,不需要再进行代码生成和变更时,锁定业务模块。
如果一个业务模块已经全部开发完成,不需要再进行代码生成,则可以对该业务模块记录进行锁定,锁定后将不能再进行修改、配置、生成代码、删除操作,防止代码被误操作而被覆盖。
在进行模块锁定操作时,回写数据库的模块配置表中对应记录的是否锁定字段为“是”。再对该模块记录进行操作时,开发平台会根据是否锁定字段判断出该记录已处于锁定状态,直接提示不能在进行相关操作。
根据本发明实施例的代码自动生成的方法可以看出,在web项目开发的过程中,以业务模块为单位,通过配置SQL查询语句,突破现有技术中只能进行单表代码生成的限制,从而实现可以处理任何的业务逻辑;通过对业务模块各字段的详细配置,从而使生成出来的代码最大化的符合业务需求;通过利用Mybatis持久层框架对配置信息以配置表的形式进行持久化,从而使得可以处理的业务范围更宽广,可用性更高,而且生成的代码易读性好,修改难度低,方便项目的开发;通过调用Velocity模板引擎生成代码文件,实现代码生成样式的高度可自定义,从而可以适应不同类型的业务需求开发;通过利用MyBatisGenerator文件生成工具生成MyBatis持久层框架所需的代码文件,从而可以保证单表公共文件的规范统一和同MyBatis的结合,实现对数据的持久化操作;此外,由于使用了配置表的方式保存业务模块的配置信息,从而可以在进行代码修改的时候,直接选择相应的配置表进行修改,并重新生成对应的代码,实现代码生成的可控性;在某一业务模块开发完成后,通过锁定动作,可以实现对该业务模块的锁定,以防止生成的代码因被误操作而覆盖。
图2是根据本发明实施例的代码自动生成的装置的主要模块的示意图。
如图2所示,本发明实施例的代码自动生成的装置20主要包括如下模块:配置模块201、保存模块202、代码生成模块203。
配置模块201,用于根据业务需求新增业务模块,并利用SQL查询语句配置所述业务模块;保存模块202,用于将所述业务模块的配置信息保存到数据库中;代码生成模块203,用于根据所述配置信息生成代码文件。
配置模块201还用于:根据SQL查询语句生成初始化配置信息,所述初始化配置信息包括:涉及的单表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息;根据业务需求对初始化配置信息进行修改。
保存模块202还用于:利用Mybatis持久层框架将所述业务模块的所有配置信息以配置表的形式保存到数据库中。
代码生成模块203还用于:通过调用Velocity模板引擎获取代码模板,将所述代码模板与所述业务模块的配置信息结合生成前台代码文件和后台代码文件;通过调用MyBatisGenerator文件生成工具,生成MyBatis持久层框架所需的代码文件。
装置20还用于:当业务需求变更时,配置模块201根据业务需求变更的内容修改相应的配置信息;保存模块202保存修改后的配置信息;代码生成模块203根据修改后的配置信息选择需要重新生成的代码文件,进行代码重新生成。
配置模块201还用于:当所述业务模块开发完成,不需要再进行代码生成和变更时,锁定所述业务模块。
从以上描述可以看出,在web项目开发的过程中,以业务模块为单位,通过配置SQL查询语句,突破现有技术中只能进行单表代码生成的限制,从而实现可以处理任何的业务逻辑;通过对业务模块各字段的详细配置,从而使生成出来的代码最大化的符合业务需求;通过利用Mybatis持久层框架对配置信息以配置表的形式进行持久化,从而使得可以处理的业务范围更宽广,可用性更高,而且生成的代码易读性好,修改难度低,方便项目的开发;通过调用Velocity模板引擎生成代码文件,实现代码生成样式的高度可自定义,从而可以适应不同类型的业务需求开发;通过利用MyBatisGenerator文件生成工具生成MyBatis持久层框架所需的代码文件,从而可以保证单表公共文件的规范统一和同MyBatis的结合,实现对数据的持久化操作;此外,由于使用了配置表的方式保存业务模块的配置信息,从而可以在进行代码修改的时候,直接选择相应的配置表进行修改,并重新生成对应的代码,实现代码生成的可控性;在某一业务模块开发完成后,通过锁定动作,可以实现对该业务模块的锁定,以防止生成的代码因被误操作而覆盖。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (12)

1.一种代码自动生成的方法,其特征在于,包括:
根据业务需求新增业务模块,并利用SQL查询语句配置所述业务模块;
将所述业务模块的配置信息保存到数据库中;
根据所述配置信息生成代码文件。
2.根据权利要求1所述的方法,其特征在于,利用SQL查询语句配置所述业务模块包括:
根据SQL查询语句生成初始化配置信息,所述初始化配置信息包括:涉及的单表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息;
根据业务需求对初始化配置信息进行修改。
3.根据权利要求1所述的方法,其特征在于,将所述业务模块的配置信息保存到数据库中包括:利用Mybatis持久层框架将所述业务模块的所有配置信息以配置表的形式保存到数据库中。
4.根据权利要求1所述的方法,其特征在于,根据所述配置信息生成代码文件包括:
通过调用Velocity模板引擎获取代码模板,将所述代码模板与所述业务模块的配置信息结合生成前台代码文件和后台代码文件;
通过调用MyBatisGenerator文件生成工具,生成MyBatis持久层框架所需的代码文件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当业务需求变更时,根据业务需求变更的内容修改相应的配置信息并加以保存;
根据修改后的配置信息选择需要重新生成的代码文件,进行代码重新生成。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
当所述业务模块开发完成,不需要再进行代码生成和变更时,锁定所述业务模块。
7.一种代码自动生成的装置,其特征在于,包括:
配置模块,用于根据业务需求新增业务模块,并利用SQL查询语句配置所述业务模块;
保存模块,用于将所述业务模块的配置信息保存到数据库中;
代码生成模块,用于根据所述配置信息生成代码文件。
8.根据权利要求7所述的装置,其特征在于,所述配置模块还用于:
根据SQL查询语句生成初始化配置信息,所述初始化配置信息包括:涉及的单表信息、Grid基本信息、Grid列信息、Form基本信息、Form列信息;
根据业务需求对初始化配置信息进行修改。
9.根据权利要求7所述的装置,其特征在于,所述保存模块还用于:利用Mybatis持久层框架将所述业务模块的所有配置信息以配置表的形式保存到数据库中。
10.根据权利要求7所述的装置,其特征在于,所述代码生成模块还用于:
通过调用Velocity模板引擎获取代码模板,将所述代码模板与所述业务模块的配置信息结合生成前台代码文件和后台代码文件;
通过调用MyBatisGenerator文件生成工具,生成MyBatis持久层框架所需的代码文件。
11.根据权利要求7所述的装置,其特征在于,所述装置还用于:
当业务需求变更时,配置模块根据业务需求变更的内容修改相应的配置信息;
保存模块保存修改后的配置信息;
代码生成模块根据修改后的配置信息选择需要重新生成的代码文件,进行代码重新生成。
12.根据权利要求7-11任一项所述的装置,其特征在于,所述配置模块还用于:
当所述业务模块开发完成,不需要再进行代码生成和变更时,锁定所述业务模块。
CN201510837148.5A 2015-11-26 2015-11-26 代码自动生成的方法和装置 Active CN105487864B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510837148.5A CN105487864B (zh) 2015-11-26 2015-11-26 代码自动生成的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510837148.5A CN105487864B (zh) 2015-11-26 2015-11-26 代码自动生成的方法和装置

Publications (2)

Publication Number Publication Date
CN105487864A true CN105487864A (zh) 2016-04-13
CN105487864B CN105487864B (zh) 2019-06-04

Family

ID=55674864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510837148.5A Active CN105487864B (zh) 2015-11-26 2015-11-26 代码自动生成的方法和装置

Country Status (1)

Country Link
CN (1) CN105487864B (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126564A (zh) * 2016-06-17 2016-11-16 浙江万朋教育科技股份有限公司 一种基于动态模板语言渲染的方法
CN107273116A (zh) * 2017-05-22 2017-10-20 互联天下科技发展(深圳)有限公司 采用基于框架的代码生成工具生产代码的方法
CN108153897A (zh) * 2018-01-10 2018-06-12 中国银行股份有限公司 一种plsql程序代码生成方法及***
CN108920140A (zh) * 2018-07-19 2018-11-30 河北中科恒运软件科技股份有限公司 一种前后端统一校验方法
CN109240670A (zh) * 2018-11-21 2019-01-18 北京锐安科技有限公司 模块化的软件开发方法、***、设备及介质
CN109725891A (zh) * 2018-12-29 2019-05-07 深圳市思迪信息技术股份有限公司 业务模块快速生成的方法及装置
CN109783084A (zh) * 2019-01-18 2019-05-21 广州思坦德计算机信息科技有限公司 一种计算机代码自动生成方法、***、装置和存储介质
CN110019146A (zh) * 2018-06-26 2019-07-16 珠海宏桥高科技有限公司 一种单表维护功能的实现方法和装置
CN110019350A (zh) * 2017-07-28 2019-07-16 北京京东尚科信息技术有限公司 基于配置信息的数据查询方法和装置
CN110162295A (zh) * 2019-04-01 2019-08-23 贵州力创科技发展有限公司 一种快速开发方法和***
CN110247843A (zh) * 2019-07-31 2019-09-17 浪潮软件股份有限公司 一种基于微信公众平台的自定义业务消息推送方法及***
CN110262790A (zh) * 2019-07-04 2019-09-20 平安科技(深圳)有限公司 组件生成方法、装置、存储介质及终端设备
CN110489106A (zh) * 2019-07-22 2019-11-22 北京字节跳动网络技术有限公司 一种项目初始化代码的生成方法、装置、介质和电子设备
CN110765152A (zh) * 2019-09-18 2020-02-07 平安科技(深圳)有限公司 Sql提取方法、装置、计算机设备和存储介质
CN110795080A (zh) * 2019-10-21 2020-02-14 山东舜知信息科技有限公司 一种基于数据库注释的代码自动生成***及构建方法
CN110941423A (zh) * 2019-11-22 2020-03-31 深圳市航通智能技术有限公司 一种基于Java的快速生成代码方法
CN111694562A (zh) * 2020-06-16 2020-09-22 北京弘远博学科技有限公司 代码生成工具
CN112181396A (zh) * 2019-07-02 2021-01-05 北京京东尚科信息技术有限公司 Rn代码自动生成***、方法、设备及介质
CN112256250A (zh) * 2020-10-22 2021-01-22 重庆中源绿蓝环境科技有限公司 Java SpringCloud+MyBatis架构基础层源码生成工具
CN112631568A (zh) * 2020-12-30 2021-04-09 深圳康佳电子科技有限公司 一种代码生成方法、装置、智能终端及存储介质
CN113110832A (zh) * 2021-04-08 2021-07-13 北京联创新天科技有限公司 一种智能高效代码生成方法、装置及存储介质
CN113268231A (zh) * 2021-06-08 2021-08-17 浪潮天元通信信息***有限公司 一种数据采集比对方法
CN113485770A (zh) * 2021-07-26 2021-10-08 挂号网(杭州)科技有限公司 业务配置数据的确定方法、装置、电子设备及存储介质
CN113608726A (zh) * 2021-07-30 2021-11-05 三一专用汽车有限责任公司 代码生成方法、装置、电子设备及存储介质
CN114089979A (zh) * 2021-11-29 2022-02-25 中国联合网络通信集团有限公司 持久层代码更新方法、***、终端设备及计算机存储介质
CN114756554A (zh) * 2022-06-13 2022-07-15 中建电子商务有限责任公司 一种基于MyBatis框架的数据查询处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101398755A (zh) * 2008-08-22 2009-04-01 满延平 一种基于模板的软件自动生成方法
CN101727324A (zh) * 2009-12-17 2010-06-09 中国电力科学研究院 一种代码生成方法及装置
CN103092589A (zh) * 2011-11-03 2013-05-08 浙江省公众信息产业有限公司 一种基于ssh框架的代码自动生成方法
CN103617037A (zh) * 2013-11-27 2014-03-05 张洁 用于web开发***的开发方法和web开发***
CN104462545A (zh) * 2014-12-24 2015-03-25 国家电网公司 一种基于三层模型的页面构造方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101398755A (zh) * 2008-08-22 2009-04-01 满延平 一种基于模板的软件自动生成方法
CN101727324A (zh) * 2009-12-17 2010-06-09 中国电力科学研究院 一种代码生成方法及装置
CN103092589A (zh) * 2011-11-03 2013-05-08 浙江省公众信息产业有限公司 一种基于ssh框架的代码自动生成方法
CN103617037A (zh) * 2013-11-27 2014-03-05 张洁 用于web开发***的开发方法和web开发***
CN104462545A (zh) * 2014-12-24 2015-03-25 国家电网公司 一种基于三层模型的页面构造方法和装置

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126564A (zh) * 2016-06-17 2016-11-16 浙江万朋教育科技股份有限公司 一种基于动态模板语言渲染的方法
CN107273116A (zh) * 2017-05-22 2017-10-20 互联天下科技发展(深圳)有限公司 采用基于框架的代码生成工具生产代码的方法
CN107273116B (zh) * 2017-05-22 2020-09-25 互联天下科技发展(深圳)有限公司 采用基于框架的代码生成工具生产代码的方法
CN110019350B (zh) * 2017-07-28 2021-06-29 北京京东尚科信息技术有限公司 基于配置信息的数据查询方法和装置
CN110019350A (zh) * 2017-07-28 2019-07-16 北京京东尚科信息技术有限公司 基于配置信息的数据查询方法和装置
CN108153897A (zh) * 2018-01-10 2018-06-12 中国银行股份有限公司 一种plsql程序代码生成方法及***
CN110019146A (zh) * 2018-06-26 2019-07-16 珠海宏桥高科技有限公司 一种单表维护功能的实现方法和装置
CN108920140B (zh) * 2018-07-19 2022-03-01 河北中科恒运软件科技股份有限公司 一种前后端统一校验方法
CN108920140A (zh) * 2018-07-19 2018-11-30 河北中科恒运软件科技股份有限公司 一种前后端统一校验方法
CN109240670A (zh) * 2018-11-21 2019-01-18 北京锐安科技有限公司 模块化的软件开发方法、***、设备及介质
CN109725891A (zh) * 2018-12-29 2019-05-07 深圳市思迪信息技术股份有限公司 业务模块快速生成的方法及装置
CN109783084A (zh) * 2019-01-18 2019-05-21 广州思坦德计算机信息科技有限公司 一种计算机代码自动生成方法、***、装置和存储介质
CN110162295A (zh) * 2019-04-01 2019-08-23 贵州力创科技发展有限公司 一种快速开发方法和***
CN112181396A (zh) * 2019-07-02 2021-01-05 北京京东尚科信息技术有限公司 Rn代码自动生成***、方法、设备及介质
CN110262790A (zh) * 2019-07-04 2019-09-20 平安科技(深圳)有限公司 组件生成方法、装置、存储介质及终端设备
CN110262790B (zh) * 2019-07-04 2024-05-07 平安科技(深圳)有限公司 组件生成方法、装置、存储介质及终端设备
CN110489106A (zh) * 2019-07-22 2019-11-22 北京字节跳动网络技术有限公司 一种项目初始化代码的生成方法、装置、介质和电子设备
CN110247843A (zh) * 2019-07-31 2019-09-17 浪潮软件股份有限公司 一种基于微信公众平台的自定义业务消息推送方法及***
CN110765152B (zh) * 2019-09-18 2023-05-30 平安科技(深圳)有限公司 Sql提取方法、装置、计算机设备和存储介质
CN110765152A (zh) * 2019-09-18 2020-02-07 平安科技(深圳)有限公司 Sql提取方法、装置、计算机设备和存储介质
CN110795080A (zh) * 2019-10-21 2020-02-14 山东舜知信息科技有限公司 一种基于数据库注释的代码自动生成***及构建方法
CN110941423A (zh) * 2019-11-22 2020-03-31 深圳市航通智能技术有限公司 一种基于Java的快速生成代码方法
CN111694562A (zh) * 2020-06-16 2020-09-22 北京弘远博学科技有限公司 代码生成工具
CN112256250A (zh) * 2020-10-22 2021-01-22 重庆中源绿蓝环境科技有限公司 Java SpringCloud+MyBatis架构基础层源码生成工具
CN112631568A (zh) * 2020-12-30 2021-04-09 深圳康佳电子科技有限公司 一种代码生成方法、装置、智能终端及存储介质
CN113110832A (zh) * 2021-04-08 2021-07-13 北京联创新天科技有限公司 一种智能高效代码生成方法、装置及存储介质
CN113268231A (zh) * 2021-06-08 2021-08-17 浪潮天元通信信息***有限公司 一种数据采集比对方法
CN113485770A (zh) * 2021-07-26 2021-10-08 挂号网(杭州)科技有限公司 业务配置数据的确定方法、装置、电子设备及存储介质
CN113485770B (zh) * 2021-07-26 2024-03-22 挂号网(杭州)科技有限公司 业务配置数据的确定方法、装置、电子设备及存储介质
CN113608726A (zh) * 2021-07-30 2021-11-05 三一专用汽车有限责任公司 代码生成方法、装置、电子设备及存储介质
CN113608726B (zh) * 2021-07-30 2023-08-11 三一专用汽车有限责任公司 代码生成方法、装置、电子设备及存储介质
CN114089979A (zh) * 2021-11-29 2022-02-25 中国联合网络通信集团有限公司 持久层代码更新方法、***、终端设备及计算机存储介质
CN114756554A (zh) * 2022-06-13 2022-07-15 中建电子商务有限责任公司 一种基于MyBatis框架的数据查询处理方法
CN114756554B (zh) * 2022-06-13 2022-09-30 中建电子商务有限责任公司 一种基于MyBatis框架的数据查询处理方法

Also Published As

Publication number Publication date
CN105487864B (zh) 2019-06-04

Similar Documents

Publication Publication Date Title
CN105487864A (zh) 代码自动生成的方法和装置
CN106528129B (zh) 一种Web应用界面生成***及方法
CN102779040B (zh) 一种生成自定义表单的方法和装置
US20210117437A1 (en) Data model transformation
CN110825362A (zh) 低代码应用软件开发***及方法
CN109358851A (zh) 图表组件的创建方法、装置及计算机可读存储介质
US8307015B2 (en) Decorated model architecture for efficient model-driven application development
CN103809975B (zh) 智能云表单的实现方法
CN102207872A (zh) 按照用户需求定制Web UI控件的方法和***
CN109766097A (zh) Ui生成方法、装置、电子设备及计算机可读存储介质
CN104111826A (zh) 一种软件项目开发方法及装置
CN102968306A (zh) 一种基于数据模型驱动的代码自动生成方法和***
US10448227B2 (en) Mobile database access application development system and method
CN114035773A (zh) 一种基于配置的低代码开发表单方法、***及装置
CN112015412A (zh) 基于表单引擎生成业务模型的装置及方法
CN106648587A (zh) 一种基于注解的Web应用代码生成方法
CN110543303A (zh) 一种可视化业务平台
CN103268227A (zh) 基于extjs的bi平台快速开发的方法
CN110020356A (zh) 一种页面模块的代码生成方法、装置及***
CN103914290A (zh) 一种操作命令处理方法及装置
CN107294750A (zh) 一种云集群能自识别的分布配置管理方法和装置
CN104615431A (zh) 一种Web应用的实现方法和装置
CN103984554B (zh) 软件设计文档的生成方法及装置
CN116401407A (zh) 思维导图的节点属性配置方法、装置、设备和存储介质
CN115358204A (zh) 一种报表生成方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant