CN112000320A - 自动化代码生成方法、装置、设备及存储介质 - Google Patents

自动化代码生成方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112000320A
CN112000320A CN202010879187.2A CN202010879187A CN112000320A CN 112000320 A CN112000320 A CN 112000320A CN 202010879187 A CN202010879187 A CN 202010879187A CN 112000320 A CN112000320 A CN 112000320A
Authority
CN
China
Prior art keywords
plug
code generation
pojo
annotation
serialization
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
Application number
CN202010879187.2A
Other languages
English (en)
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.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China 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 Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202010879187.2A priority Critical patent/CN112000320A/zh
Publication of CN112000320A publication Critical patent/CN112000320A/zh
Pending legal-status Critical Current

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/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Library & Information Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及开发辅助领域,公开了一种自动化代码生成方法、装置、设备及存储介质,用于提高基于mybatis框架的代码开发效率。该方法包括:创建基于数据持久化框架mybatis的自动代码生成工程,在自动代码生成工程中导入预设版本的jar包;在自动代码生成工程的资源目录下,创建jar包的配置文件;在配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入自动代码生成工程;接收代码自动生成指令,根据代码自动生成指令生成简单的java对象pojo;通过数据库访问接口插件,为pojo添加数据库表字段注释;通过序列化插件,对添加有表结构注释的pojo进行序列化处理,得到序列化文件。

Description

自动化代码生成方法、装置、设备及存储介质
技术领域
本发明涉及开发辅助技术领域,尤其涉及自动化代码生成方法、装置、设备及存储介质。
背景技术
mybatis是一种基于Java程序语言的数据持久化框架,它支持定制化结构化查询语言(structured query language,SQL)、存储过程以及高级映射。在mybatis传统开发中,我们在建立与数据库表结构对应的数据传输对象(data transfer object,DTO)时,如果采用单纯手动开发模式,在表结构简单的时候,对应的手动输入操作也是很简单的,而当表结构较复杂时,一个一个校对字段不仅显得繁琐,而且容易出错。
mybatis-generator是一种用于mybatis的自动代码生成工具,其可以针对数据库表结构自动生成mybatis执行所需要的代码,如mapper.java、mapper.xml、pojo(plainordinary java object,简单的Java对象)等。mybatis-generator既可以嵌入在当前的项目工程中,也可以成为一个独立的DTO生成工程使用,十分方便。
然而,现有开发过程中,为实现pojo对象的序列化,需要手动在pojo对象上添加序列化接口,这一过程耗时耗力,而且,使用mybatis-generator生成的pojo缺乏和表结构字段对应的注释,导致开发人员很难确认pojo中每一个字段的名称所对应的含义,此时,开发人员只能自己手动增加字段,或是使用的时候去数据库查找对应的字段含义,无论哪一种,都是耗费人力的一件事,从而导致代码开发效率低下。
发明内容
本发明的主要目的在于提出一种自动化代码生成方法、装置、设备及存储介质,旨在提高基于mybatis框架的代码开发效率。
本发明第一方面提供了一种自动化代码生成方法,所述自动化代码生成方法包括:
创建基于数据持久化框架mybatis的自动代码生成工程,在所述自动代码生成工程中导入预设版本的jar包;
在所述自动代码生成工程的资源目录下,创建所述jar包的配置文件;
在所述配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入所述自动代码生成工程;
接收代码自动生成指令,根据所述代码自动生成指令生成简单的java对象pojo;
通过所述数据库访问接口插件,为所述pojo添加数据库表字段注释;
通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件。
可选的,在本发明第一方面的第一种实现方式中,所述在所述自动代码生成工程的资源目录下,创建所述jar包的配置文件的步骤包括:
获取所述自动代码生成工程的默认配置文件,所述默认配置文件中包含所述mybatis所关联的默认数据库的配置信息;
在所述自动代码生成工程的资源目录下,添加所述默认配置文件,并将所述默认配置文件作为所述jar包的配置文件。
可选的,在本发明第一方面的第二种实现方式中,所述通过所述数据库访问接口插件,为所述pojo添加数据库表字段注释的步骤包括:
通过所述数据库访问接口插件,读取所述mybatis所关联的数据库中的数据库表字段注释;
在所述pojo中定位与所述数据库表字段注释对应的待注释字段,并将所述数据库表字段注释添加在所述待注释字段上。
可选的,在本发明第一方面的第三种实现方式中,所述通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件的步骤包括:
接收序列化指令,获取所述序列化指令携带的序列化处理后所生成的序列化文件的格式类型;
根据所述格式类型调用所述序列化插件中对应的序列化接口函数;
通过所述序列化接口函数,将添加有所述表结构注释的pojo转换为与所述格式类型对应的序列化文件。
可选的,在本发明第一方面的第四种实现方式中,所述通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件的步骤之前,还包括:
接收对象操作方法重写指令,根据所述对象操作方法重写指令,重写所述pojo中的预设对象操作方法,以使所述预设对象操作方法返回false;
通过预先定义的注解插件,在所述pojo中重写了所述预设对象操作方法的地方添加对应的预设注解;
所述通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件的步骤包括:
通过所述序列化插件,对添加有所述表结构注释和所述预设注解的pojo进行序列化处理,得到序列化文件。
可选的,在本发明第一方面的第五种实现方式中,所述接收代码自动生成指令,根据所述代码自动生成指令生成简单的java对象pojo的步骤之前,还包括:
在所述自动代码生成工程中创建一个自定义类,用所述自定义类继承所述自动代码生成工程中的插件适配类;
在所述插件适配类中自定义一个注解插件,所述注解插件用于为所述pojo添加预设注解。
可选的,在本发明第一方面的第六种实现方式中,所述在所述插件适配类中自定义一个注解插件,所述注解插件用于为所述pojo添加预设注解的步骤包括:
接收基于所述自定义类继承的所述插件适配类的改写指令;
根据所述改写指令,重写所述插件适配类中的表单校验方法,以使所述表单校验方法返回true;
在重写了所述表单校验方法的所述插件适配类中,自定义一个注解插件,所述注解插件用于为所述pojo添加预设注解。
本发明第二方面提供了一种自动化代码生成装置,所述自动化代码生成装置包括:
第一创建模块,用于创建基于数据持久化框架mybatis的自动代码生成工程,在所述自动代码生成工程中导入预设版本的jar包;
第二创建模块,用于在所述自动代码生成工程的资源目录下,创建所述jar包的配置文件;
插件引入模块,用于在所述配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入所述自动代码生成工程;
生成模块,用于接收代码自动生成指令,根据所述代码自动生成指令生成简单的java对象pojo;
添加模块,用于通过所述数据库访问接口插件,为所述pojo添加数据库表字段注释;
序列化模块,用于通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件。
可选的,在本发明第二方面的第一种实现方式中,所述第二创建模块还用于:
获取所述自动代码生成工程的默认配置文件,所述默认配置文件中包含所述mybatis所关联的默认数据库的配置信息;
在所述自动代码生成工程的资源目录下,添加所述默认配置文件,并将所述默认配置文件作为所述jar包的配置文件。
可选的,在本发明第二方面的第二种实现方式中,所述添加模块还用于:
通过所述数据库访问接口插件,读取所述mybatis所关联的数据库中的数据库表字段注释;
在所述pojo中定位与所述数据库表字段注释对应的待注释字段,并将所述数据库表字段注释添加在所述待注释字段上。
可选的,在本发明第二方面的第三种实现方式中,所述序列化模块还用于:
接收序列化指令,获取所述序列化指令携带的序列化处理后所生成的序列化文件的格式类型;
根据所述格式类型调用所述序列化插件中对应的序列化接口函数;
通过所述序列化接口函数,将添加有所述表结构注释的pojo转换为与所述格式类型对应的序列化文件。
可选的,在本发明第二方面的第四种实现方式中,所述自动化代码生成装置还包括:
重写模块,用于接收对象操作方法重写指令,根据所述对象操作方法重写指令,重写所述pojo中的预设对象操作方法,以使所述预设对象操作方法返回false;
注解模块,用于通过预先定义的注解插件,在所述pojo中重写了所述预设对象操作方法的地方添加对应的预设注解;
所述序列化模块还用于通过所述序列化插件,对添加有所述表结构注释和所述预设注解的pojo进行序列化处理,得到序列化文件。
可选的,在本发明第二方面的第五种实现方式中,所述自动化代码生成装置还包括:
第三创建模块,用于在所述自动代码生成工程中创建一个自定义类,用所述自定义类继承所述自动代码生成工程中的插件适配类;
自定义模块,用于在所述插件适配类中自定义一个注解插件,所述注解插件用于为所述pojo添加预设注解。
可选的,在本发明第二方面的第六种实现方式中,所述自定义模块还用于:
接收基于所述自定义类继承的所述插件适配类的改写指令;
根据所述改写指令,重写所述插件适配类中的表单校验方法,以使所述表单校验方法返回true;
在重写了所述表单校验方法的所述插件适配类中,自定义一个注解插件,所述注解插件用于为所述pojo添加预设注解。
本发明第三方面提供了一种自动化代码生成设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述自动化代码生成设备执行上述的自动化代码生成方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的自动化代码生成方法。
本发明创建基于数据持久化框架mybatis的自动代码生成工程,在自动代码生成工程中导入预设版本的jar包;在自动代码生成工程的资源目录下,创建jar包的配置文件;在配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入自动代码生成工程;接收代码自动生成指令,根据代码自动生成指令生成简单的java对象pojo;通过数据库访问接口插件,为pojo添加数据库表字段注释;通过序列化插件,对添加有表结构注释的pojo进行序列化处理,得到序列化文件。通过这种方式,实现了为mybatis框架生成的pojo自动添加数据库表字段注释和自动生成pojo的序列化文件,从而提高了基于mybatis框架的代码开发效率。
附图说明
图1为本发明自动化代码生成方法的一个实施例的流程示意图;
图2为本发明自动化代码生成方法的另一个实施例的流程示意图;
图3为本发明自动化代码生成装置的一个实施例的模块示意图;
图4为本发明自动化代码生成装置的另一个实施例的模块示意图;
图5为本发明自动化代码生成设备的一个实施例的结构示意图。
具体实施方式
本发明实施例提供了一种自动化代码生成方法、装置、设备及存储介质,提高了基于mybatis框架的代码开发效率。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明自动化代码生成方法实施例的具体流程进行描述。
参照图1,图1为本发明自动化代码生成方法的一个实施例的流程示意图,该方法包括:
步骤101,创建基于数据持久化框架mybatis的自动代码生成工程,在自动代码生成工程中导入预设版本的jar包;
可以理解的是,本发明的执行主体可以为自动化代码生成装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
在本实施例中,服务器首先创建一个基于数据持久化框架mybatis的自动代码生成工程,即mybatis-generator工程,此时,开发人员可以触发jar包导入指令,服务器根据该jar包导入指令在该自动代码生成工程中导入预设版本的jar包。其中,jar包即java归档文件,其是一种软件包文件格式,通常用于聚合大量的java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发java平台应用软件或库。本实施例导入的jar包应至少包括mybatis的依赖包和数据库访问驱动包,其中mybatis的依赖包用于使mybatis能够正常运行,数据库访问驱动包即mysql包,mysql包用于使mybatis能够正常访问数据库。
需要说明的是,导入的jar包的版本可以灵活选择,比如选择当前最新版本。通过导入jar包,保证了自动代码生成工程能够正常执行自动化代码生成功能。
步骤102,在自动代码生成工程的资源目录下,创建jar包的配置文件;
在导入jar包后,服务器在自动代码生成工程的资源目录,即resources目录下创建该jar包的配置文件。
进一步地,该步骤102具体可以包括:获取自动代码生成工程的默认配置文件,默认配置文件中包含mybatis所关联的默认数据库的配置信息;在自动代码生成工程的资源目录下,添加默认配置文件,并将默认配置文件作为jar包的配置文件。
在创建jar包的配置文件时,服务器可以首先获取上述自动代码生成工程的默认配置文件,即generatorConfig.xml,该默认配置文件中包含mybatis所关联的默认数据库的配置信息;然后,在resources目录下,添加该默认配置文件,该默认配置文件即作为导入的jar包的配置文件。
上述方式通过直接将默认配置文件作为导入的jar包的配置文件,操作方便快捷,无需做另外的配置。当然,开发人员也可以根据实际项目需要,触发基于该默认配置文件的修改指令,服务器接收基于该默认配置文件的修改指令,根据该修改指令修改默认配置文件的名称和默认配置文件中所包含的内容,具体实施时可以灵活设置。
步骤103,在配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入自动代码生成工程;
在创建了jar包的配置文件之后,服务器进一步在该配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入自动代码生成工程,其中,序列化插件用于将对象状态转换为字节流,以便于存储或传输,数据库访问接口插件用于访问mybatis所关联的数据库。
以配置文件为自动代码生成工程的默认配置文件generatorConfig.xml为例,服务器可以在该配置文件的代码生成器配置节点,即generatorConfiguration节点下,添加以下两行插件引入代码:
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
通过添加上述插件引入代码,可以将序列化插件SerializablePlugin和数据库访问接口插件MapperPlugin引入自动代码生成工程。
步骤104,接收代码自动生成指令,根据代码自动生成指令生成简单的java对象pojo;
该步骤中,服务器接收代码自动生成指令,该接收代码自动生成指令可以由开发人员触发,此时,自动代码生成工程能够自动生成pojo,即简单的java对象。
步骤105,通过数据库访问接口插件,为pojo添加数据库表字段注释;
该步骤中,服务器可以通过引入到自动代码生成工程中的数据库访问接口插件,为pojo添加数据库表字段注释。
进一步地,该步骤105具体可以包括:通过数据库访问接口插件,读取mybatis所关联的数据库中的数据库表字段注释;在pojo中定位与数据库表字段注释对应的待注释字段,并将数据库表字段注释添加在待注释字段上。
以数据库访问接口插件MapperPlugin为例,服务器首先通过MapperPlugin插件,读取mybatis所关联的数据库中的数据库表字段注释,比如username的注释为“用户名”,password的注释为“密码”,之后,服务器在pojo中定位与该数据库表字段注释对应的待注释字段,并将读取到的数据库表字段注释添加在该待注释字段上。由此,开发人员不必手动为pojo添加注释,也不必去数据库中查询相关注释,从而提高了代码开发效率。
步骤106,通过序列化插件,对添加有表结构注释的pojo进行序列化处理,得到序列化文件。
该步骤中,服务器通过引入到自动代码生成工程中的序列化插件,对添加有表结构注释的pojo进行序列化处理,得到序列化文件,其中,序列化指的是将pojo的对象状态转换为字节流的形式。
进一步地,该步骤106具体可以包括:接收序列化指令,获取序列化指令携带的序列化处理后所生成的序列化文件的格式类型;根据格式类型调用序列化插件中对应的序列化接口函数;通过序列化接口函数,将添加有表结构注释的pojo转换为与格式类型对应的序列化文件。
具体地,服务器首先接收序列化指令,并获取该序列化指令携带的序列化处理后所生成的序列化文件的格式类型,其中,序列化文件的格式类型可以为json、xml或二进制等类型;之后,服务器根据获取到的格式类型调用序列化插件中对应的序列化接口函数,通过该序列化接口函数,创建与添加有表结构注释的pojo对应的序列化对象,将该序列化对象进行序列化,即得到对应格式类型下的序列化文件。
在本实施例中,服务器创建基于数据持久化框架mybatis的自动代码生成工程,在自动代码生成工程中导入预设版本的jar包;在自动代码生成工程的资源目录下,创建jar包的配置文件;在配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入自动代码生成工程;接收代码自动生成指令,根据代码自动生成指令生成简单的java对象pojo;通过数据库访问接口插件,为pojo添加数据库表字段注释;通过序列化插件,对添加有表结构注释的pojo进行序列化处理,得到序列化文件。通过这种方式,实现了为mybatis框架生成的pojo自动添加数据库表字段注释和自动生成pojo的序列化文件,从而提高了基于mybatis框架的代码开发效率。
参照图2,图2为本发明自动化代码生成方法的另一个实施例的流程示意图。在本实施例中,自动化代码生成方法包括:
步骤201,创建基于数据持久化框架mybatis的自动代码生成工程,在自动代码生成工程中导入预设版本的jar包;
步骤202,在自动代码生成工程的资源目录下,创建jar包的配置文件;
步骤203,在配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入自动代码生成工程;
步骤204,接收代码自动生成指令,根据代码自动生成指令生成简单的java对象pojo;
步骤205,通过数据库访问接口插件,为pojo添加数据库表字段注释;
上述步骤201-205的具体实施方式与第一实施例中的步骤101-105基本相同,此处不做赘述。
步骤206,接收对象操作方法重写指令,根据对象操作方法重写指令,重写pojo中的预设对象操作方法,以使预设对象操作方法返回false;
在本实施例中,若开发人员想定制化输出自定义的pojo,可以基于自动代码生成工程,触发对象操作方法重写指令,服务器根据该对象操作方法重写指令,重写pojo中的预设对象操作方法,以使该预设对象操作方法返回false,其中,对象操作方法包括但不限于getter、setter等方法,重写对象操作方法的目的在于使pojo中原有的这些对象操作方法不生效。
步骤207,通过预先定义的注解插件,在pojo中重写了预设对象操作方法的地方添加对应的预设注解;
服务器通过预先定义的注解插件,在pojo中重写了预设对象操作方法的地方添加对应的预设注解。以使用注解插件Lombok为例,Lombok是一款优秀的注解插件,其提供了一组有用的注释,用来消除Java类中的大量样板代码,从而使代码简洁易于维护,通过Lombok插件,可以在pojo中重写了getter方法的地方添加@Getter注解,在重写了setter方法的地方添加@Setter注解。
步骤208,通过序列化插件,对添加有表结构注释和预设注解的pojo进行序列化处理,得到序列化文件。
后续序列化时,服务器通过序列化插件,对添加有表结构注释和预设注解的pojo进行序列化处理,得到序列化文件。
通过上述方式,实现了定制化输出包含有注解的pojo,从而提高了代码生成的灵活性。
进一步地,在上述步骤204之前,还可以包括:在自动代码生成工程中创建一个自定义类,用自定义类继承自动代码生成工程中的插件适配类;在插件适配类中自定义一个注解插件,注解插件用于为pojo添加预设注解。
具体地,在自动化生成pojo之前,服务器可以根据开发人员的创建指令在自动代码生成工程中创建一个自定义类,并用该自定义类继承自动代码生成工程中的插件适配类,即PluginAdapter类,然后,在该插件适配类中自定义一个注解插件,该注解插件用于为pojo添加预设注解,其可以是Lombok插件,也可以是其他插件,具体实施时可以灵活选择。
进一步地,在插件适配类中自定义一个注解插件,注解插件用于为pojo添加预设注解的步骤具体可以包括:接收基于自定义类继承的插件适配类的改写指令;根据改写指令,重写插件适配类中的表单校验方法,以使表单校验方法返回true;在重写了表单校验方法的插件适配类中,自定义一个注解插件,注解插件用于为pojo添加预设注解。
在插件适配类PluginAdapter中自定义一个注解插件时,必须首先对PluginAdapter中的表单校验方法,即validate方法进行改写。具体地,服务器接收基于PluginAdapter的改写指令,根据该改写指令,重写PluginAdapter的validate方法,以使validate方法返回true,重写validate方法的目的在于使对整个插件适配类的重写生效;之后,服务器可以在重写了validate方法的PluginAdapter中,自定义一个注解插件,该注解插件用于为pojo添加预设注解。
本实施例通过在自动代码生成工程中创建一个自定义类,用该自定义类继承自动代码生成工程中的插件适配类,然后在插件适配类中自定义一个注解插件,为后续通过该注解插件定制化输出包含有注解的pojo提供了前提保证。
本发明实施例还提供一种自动化代码生成装置。
参照图3,图3为本发明自动化代码生成装置的一个实施例的模块示意图。本实施例中,所述自动化代码生成装置包括:
第一创建模块301,用于创建基于数据持久化框架mybatis的自动代码生成工程,在所述自动代码生成工程中导入预设版本的jar包;
第二创建模块302,用于在所述自动代码生成工程的资源目录下,创建所述jar包的配置文件;
插件引入模块303,用于在所述配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入所述自动代码生成工程;
生成模块304,用于接收代码自动生成指令,根据所述代码自动生成指令生成简单的java对象pojo;
添加模块305,用于通过所述数据库访问接口插件,为所述pojo添加数据库表字段注释;
序列化模块306,用于通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件。
本实施例通过上述方式,实现了为mybatis框架生成的pojo自动添加数据库表字段注释和自动生成pojo的序列化文件,从而提高了基于mybatis框架的代码开发效率。
参照图4,图4为本发明自动化代码生成装置的另一个实施例的模块示意图。本实施例中,所述自动化代码生成装置包括:
第一创建模块301,用于创建基于数据持久化框架mybatis的自动代码生成工程,在所述自动代码生成工程中导入预设版本的jar包;
第二创建模块302,用于在所述自动代码生成工程的资源目录下,创建所述jar包的配置文件;
插件引入模块303,用于在所述配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入所述自动代码生成工程;
生成模块304,用于接收代码自动生成指令,根据所述代码自动生成指令生成简单的java对象pojo;
添加模块305,用于通过所述数据库访问接口插件,为所述pojo添加数据库表字段注释;
序列化模块306,用于通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件。
可选的,所述第二创建模块302还用于:
获取所述自动代码生成工程的默认配置文件,所述默认配置文件中包含所述mybatis所关联的默认数据库的配置信息;
在所述自动代码生成工程的资源目录下,添加所述默认配置文件,并将所述默认配置文件作为所述jar包的配置文件。
可选的,所述添加模块305还用于:
通过所述数据库访问接口插件,读取所述mybatis所关联的数据库中的数据库表字段注释;
在所述pojo中定位与所述数据库表字段注释对应的待注释字段,并将所述数据库表字段注释添加在所述待注释字段上。
可选的,所述序列化模块306还用于:
接收序列化指令,获取所述序列化指令携带的序列化处理后所生成的序列化文件的格式类型;
根据所述格式类型调用所述序列化插件中对应的序列化接口函数;
通过所述序列化接口函数,将添加有所述表结构注释的pojo转换为与所述格式类型对应的序列化文件。
可选的,所述自动化代码生成装置还包括:
重写模块307,用于接收对象操作方法重写指令,根据所述对象操作方法重写指令,重写所述pojo中的预设对象操作方法,以使所述预设对象操作方法返回false;
注解模块308,用于通过预先定义的注解插件,在所述pojo中重写了所述预设对象操作方法的地方添加对应的预设注解;
所述序列化模块306还用于通过所述序列化插件,对添加有所述表结构注释和所述预设注解的pojo进行序列化处理,得到序列化文件。
可选的,所述自动化代码生成装置还包括:
第三创建模块309,用于在所述自动代码生成工程中创建一个自定义类,用所述自定义类继承所述自动代码生成工程中的插件适配类;
自定义模块310,用于在所述插件适配类中自定义一个注解插件,所述注解插件用于为所述pojo添加预设注解。
可选的,所述自定义模块310还用于:
接收基于所述自定义类继承的所述插件适配类的改写指令;
根据所述改写指令,重写所述插件适配类中的表单校验方法,以使所述表单校验方法返回true;
在重写了所述表单校验方法的所述插件适配类中,自定义一个注解插件,所述注解插件用于为所述pojo添加预设注解。
本实施例通过上述方式,实现了为mybatis框架生成的pojo自动添加数据库表字段注释和自动生成pojo的序列化文件,从而提高了基于mybatis框架的代码开发效率。
上面从模块化功能实体的角度对本发明实施例中的自动化代码生成装置进行了详细描述,下面从硬件处理的角度对本发明实施例中自动化代码生成设备进行详细描述。
参照图5,图5为本发明实施例提供的自动化代码生成设备的结构示意图。该自动化代码生成设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对自动化代码生成设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在自动化代码生成设备500上执行存储介质530中的一系列指令操作。
自动化代码生成设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的自动化代码生成设备结构并不构成对自动化代码生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种自动化代码生成设备,所述自动化代码生成设备包括存储器和处理器,存储器中存储有指令,所述指令被处理器执行时,使得处理器执行上述各实施例中的所述自动化代码生成方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述自动化代码生成方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种自动化代码生成方法,其特征在于,所述自动化代码生成方法包括如下步骤:
创建基于数据持久化框架mybatis的自动代码生成工程,在所述自动代码生成工程中导入预设版本的jar包;
在所述自动代码生成工程的资源目录下,创建所述jar包的配置文件;
在所述配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入所述自动代码生成工程;
接收代码自动生成指令,根据所述代码自动生成指令生成简单的java对象pojo;
通过所述数据库访问接口插件,为所述pojo添加数据库表字段注释;
通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件。
2.如权利要求1所述的自动化代码生成方法,其特征在于,所述在所述自动代码生成工程的资源目录下,创建所述jar包的配置文件的步骤包括:
获取所述自动代码生成工程的默认配置文件,所述默认配置文件中包含所述mybatis所关联的默认数据库的配置信息;
在所述自动代码生成工程的资源目录下,添加所述默认配置文件,并将所述默认配置文件作为所述jar包的配置文件。
3.如权利要求1所述的自动化代码生成方法,其特征在于,所述通过所述数据库访问接口插件,为所述pojo添加数据库表字段注释的步骤包括:
通过所述数据库访问接口插件,读取所述mybatis所关联的数据库中的数据库表字段注释;
在所述pojo中定位与所述数据库表字段注释对应的待注释字段,并将所述数据库表字段注释添加在所述待注释字段上。
4.如权利要求1所述的自动化代码生成方法,其特征在于,所述通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件的步骤包括:
接收序列化指令,获取所述序列化指令携带的序列化处理后所生成的序列化文件的格式类型;
根据所述格式类型调用所述序列化插件中对应的序列化接口函数;
通过所述序列化接口函数,将添加有所述表结构注释的pojo转换为与所述格式类型对应的序列化文件。
5.如权利要求1所述的自动化代码生成方法,其特征在于,所述通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件的步骤之前,还包括:
接收对象操作方法重写指令,根据所述对象操作方法重写指令,重写所述pojo中的预设对象操作方法,以使所述预设对象操作方法返回false;
通过预先定义的注解插件,在所述pojo中重写了所述预设对象操作方法的地方添加对应的预设注解;
所述通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件的步骤包括:
通过所述序列化插件,对添加有所述表结构注释和所述预设注解的pojo进行序列化处理,得到序列化文件。
6.如权利要求5所述的自动化代码生成方法,其特征在于,所述接收代码自动生成指令,根据所述代码自动生成指令生成简单的java对象pojo的步骤之前,还包括:
在所述自动代码生成工程中创建一个自定义类,用所述自定义类继承所述自动代码生成工程中的插件适配类;
在所述插件适配类中自定义一个注解插件,所述注解插件用于为所述pojo添加预设注解。
7.如权利要求6所述的自动化代码生成方法,其特征在于,所述在所述插件适配类中自定义一个注解插件,所述注解插件用于为所述pojo添加预设注解的步骤包括:
接收基于所述自定义类继承的所述插件适配类的改写指令;
根据所述改写指令,重写所述插件适配类中的表单校验方法,以使所述表单校验方法返回true;
在重写了所述表单校验方法的所述插件适配类中,自定义一个注解插件,所述注解插件用于为所述pojo添加预设注解。
8.一种自动化代码生成装置,其特征在于,所述自动化代码生成装置包括:
第一创建模块,用于创建基于数据持久化框架mybatis的自动代码生成工程,在所述自动代码生成工程中导入预设版本的jar包;
第二创建模块,用于在所述自动代码生成工程的资源目录下,创建所述jar包的配置文件;
插件引入模块,用于在所述配置文件的代码生成器配置节点下,添加预设的插件引入代码,以将预设的序列化插件和数据库访问接口插件引入所述自动代码生成工程;
生成模块,用于接收代码自动生成指令,根据所述代码自动生成指令生成简单的java对象pojo;
添加模块,用于通过所述数据库访问接口插件,为所述pojo添加数据库表字段注释;
序列化模块,用于通过所述序列化插件,对添加有所述表结构注释的pojo进行序列化处理,得到序列化文件。
9.一种自动化代码生成设备,其特征在于,所述自动化代码生成设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述自动化代码生成设备执行如权利要求1-7中任一项所述的自动化代码生成方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任一项所述的自动化代码生成方法。
CN202010879187.2A 2020-08-27 2020-08-27 自动化代码生成方法、装置、设备及存储介质 Pending CN112000320A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010879187.2A CN112000320A (zh) 2020-08-27 2020-08-27 自动化代码生成方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010879187.2A CN112000320A (zh) 2020-08-27 2020-08-27 自动化代码生成方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN112000320A true CN112000320A (zh) 2020-11-27

Family

ID=73470771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010879187.2A Pending CN112000320A (zh) 2020-08-27 2020-08-27 自动化代码生成方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112000320A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905453A (zh) * 2021-02-03 2021-06-04 重庆富民银行股份有限公司 自动化测试中数据库操作代码快速生成的方法
CN113190264A (zh) * 2021-04-29 2021-07-30 上海天好信息技术股份有限公司 一种基于jpa的自动化数据版本生成及应用的装置和方法
CN113568679A (zh) * 2021-07-20 2021-10-29 深圳Tcl新技术有限公司 插件加载方法、装置、存储介质及电子设备
CN113609138A (zh) * 2021-09-30 2021-11-05 成都数联云算科技有限公司 一种类与数据库表的匹配方法、装置、设备及介质
CN113791763A (zh) * 2021-01-22 2021-12-14 北京沃东天骏信息技术有限公司 一种代码生成方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147413A (zh) * 2019-04-26 2019-08-20 平安科技(深圳)有限公司 数据存储方法、数据查询方法、装置、设备及存储介质
CN111190586A (zh) * 2019-12-16 2020-05-22 腾讯科技(深圳)有限公司 软件开发框架的搭建及使用方法、计算设备和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147413A (zh) * 2019-04-26 2019-08-20 平安科技(深圳)有限公司 数据存储方法、数据查询方法、装置、设备及存储介质
CN111190586A (zh) * 2019-12-16 2020-05-22 腾讯科技(深圳)有限公司 软件开发框架的搭建及使用方法、计算设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
暴走的程序员: "tk.mybatis 逆向工程,生成带数据库注释的实体类", pages 1 - 5, Retrieved from the Internet <URL:https://www.jianshu.com/p/839d12818939> *
李勇: "内蒙古电科院管理信息系统设计与实现", 中国优秀硕士学位论文全文数据库信息科技辑, vol. 138, no. 2016, 15 March 2016 (2016-03-15), pages 37 - 54 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791763A (zh) * 2021-01-22 2021-12-14 北京沃东天骏信息技术有限公司 一种代码生成方法和装置
CN112905453A (zh) * 2021-02-03 2021-06-04 重庆富民银行股份有限公司 自动化测试中数据库操作代码快速生成的方法
CN113190264A (zh) * 2021-04-29 2021-07-30 上海天好信息技术股份有限公司 一种基于jpa的自动化数据版本生成及应用的装置和方法
CN113190264B (zh) * 2021-04-29 2024-02-23 上海天好信息技术股份有限公司 一种基于jpa的自动化数据版本生成及应用的装置和方法
CN113568679A (zh) * 2021-07-20 2021-10-29 深圳Tcl新技术有限公司 插件加载方法、装置、存储介质及电子设备
CN113609138A (zh) * 2021-09-30 2021-11-05 成都数联云算科技有限公司 一种类与数据库表的匹配方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN112000320A (zh) 自动化代码生成方法、装置、设备及存储介质
EP3502896B1 (en) Generation of an adapters configuration user interface using a data structure
KR101314949B1 (ko) 통합 환경 생성기
CN113986226B (zh) 一种基于qiankun和Web Component的微前端架构及其构建方法
CN112748908B (zh) 基于SSM框架的Restful服务开发方法与装置
CN110187902B (zh) 基于spring boot的项目改造方法、装置、设备及存储介质
CN102566984B (zh) 一种配置参数的方法及装置
WO2015199748A1 (en) Rest service source code generation
CN113127098B (zh) 基于微服务架构的应用程序创建方法及相关设备
CN112769706B (zh) 组件化路由方法及系统
CN110543297A (zh) 用于生成源码的方法和装置
CN110457013B (zh) 程序组件配置装置及方法
Rinner et al. Creating ISO/EN 13606 archetypes based on clinical information needs
CN111240681B (zh) 一种不同编程语言的转换方法及装置
US7721279B1 (en) Packaging information integration applications
CN112860232A (zh) 组件实施方法及装置
CN116185391A (zh) 应用程序编程接口生成方法、装置、设备及存储介质
CN113254040B (zh) 前端框架更新方法、装置、设备及存储介质
CN112988225B (zh) 注解配置方法、装置、设备及存储介质
AU2018313995B2 (en) Systems and methods for providing globalization features in a service management application interface
US20040046793A1 (en) Program generation method
EP2555111A1 (en) Signaling display method and system
JP2012150740A (ja) プログラム生成装置及び方法
CN113986207B (zh) 一种软件架构生成、调用方法及装置
CN117170684A (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