CN107479883A - 一种代码生成方法及代码生成器 - Google Patents
一种代码生成方法及代码生成器 Download PDFInfo
- Publication number
- CN107479883A CN107479883A CN201710667186.XA CN201710667186A CN107479883A CN 107479883 A CN107479883 A CN 107479883A CN 201710667186 A CN201710667186 A CN 201710667186A CN 107479883 A CN107479883 A CN 107479883A
- Authority
- CN
- China
- Prior art keywords
- module
- code
- generation
- layer
- jsp
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种代码生成方法及代码生成器,提供生成业务功能的JSP页面文件(查询列表、新增、修改、删除、查询、导出、导入、校验)。一种代码生成方法,包括如下步骤:1)获取在线配置信息;2)调度组装模块调用数据库模块连接数据库;3)调度组装模块调用模板解析模块依次解析数据库表映射模块、实体类生成模块、注解生成模块生成实体对向和映射文件,4)代码生成模块;5)步骤4)后调度组装模块将步骤4)生成的代码生成打包文件。本发明还提供了一种代码生成器,包括在线配置模块、调度组装模块、代码打包模块。
Description
技术领域
本发明涉及电子信息技术领域,尤其是一种代码生成方法及代码生成器。
背景技术
MyBatis Generator(MBG)是MyBatis和iBATIS的代码生成器。它将生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表进行交互的最初麻烦。MBG旨在对简单的CRUD(创建,检索,更新,删除)的大量数据库操作产生重大影响。现有技术的缺点:1、仅完成了一个业务模块开发过程中的1-2步骤,MyBatis Generator本身只是面向MyBatis和iBATIS的一个代码生成器的工具;2、只能本地运行,对于运行环境有要求,MyBatisGenerator(MBG)提供了二种运行模式,一种是命令模式,另外一种是基于开发工具eclipse运行程序;3、配置繁琐笨重,使用需要学习成本,MyBatis Generator(MBG)由XML配置文件驱动的。配置文件需要指定怎么连接到数据库、需要生产的对象以及如何生成它们、表生成对象的关联;4、数据库的连接、表都写死在配置文件中,使用不便捷,MyBatis Generator(MBG)基于XML配置文件驱动的;5、自动生成的实体对象属性代码无注解;6、无页面生成技术。
发明内容
有鉴于此,本发明的主要目的是提供一种代码生成方法及代码生成器,提供生成业务功能的JSP页面文件(查询列表、新增、修改、删除、查询、导出、导入、校验)。
具体的实施方案如下:
一种代码生成方法,包括如下步骤:
1)获取在线配置信息;
2)调度组装模块调用数据库模块连接数据库;
3)调度组装模块调用模板解析模块依次解析数据库表映射模块、实体类生成模块、注解生成模块生成实体对向和映射文件,
4)代码生成模块:包括
A:调度组装模块调用模板解析模块解析数据持久层模板模块后并调用持久生成模块生成持久层代码;
B:调度组装模块调用模板解析模块解析服务器层模板模块后并调用服务器层生成模块生成服务器层代码;
C:调度组装模块调用模板解析模块解析控制器层模板模块后并调用控制器层生成模块生成控制器层代码;
D:调度组装模块调用模板解析模块解析JSP页面模板模块后并调用JSP页面生成模块生成JSP页面生成代码;
5)步骤4)后调度组装模块将步骤4)生成的代码生成打包文件。
进一步地,在步骤1)中,先读取MyBatis Generator的XML配置文件,然后在获取XML配置文件后自动重置MyBatis Generator的XML配置中的数据库连接、表、类、包的数据信息。
进一步地,在步骤4)中,执行MyBatis Generator自动生成对象,代码生成。
本发明还提供了一种代码生成器,包括
在线配置模块,用于在线配置数据库连接、表、类、包的信息;
调度组装模块,用于调用模板解析模块依次解析数据库表映射模块、实体类生成模块、注解生成模块生成实体对向和映射文件;
以及用于调用模板解析模块解析代码生成模块生成持久层代码、服务器层代码、控制器层代码以及JSP页面生成代码;
代码打包模块;用于持久层代码、服务器层代码、控制器层代码以及JSP页面生成代码生成打包文件。
进一步地,所述持久层代码由持久生成模块生成,所述持久生成模块由数据持久层模板模块调用。
进一步地,所述服务器层代码由服务器层生成模块生成,所述服务器层生成模块由服务器层模板模块调用。
进一步地,所述控制器层代码由服务器层生成模块生成,所述控制器层生成模块由控制器层模板模块调用。
进一步地,所述JSP页面生成代码由JSP页面生成模块生成,所述JSP页面生成模块由JSP页面模板模块调用。
本发明与现有的技术相比,
补全服务层的逻辑代码、Controller控制器层、前端页面JSP文件。对于数据的基础操作都已经封装好。业务开发只需要关心一些特定的核心的逻辑代码实现,节约了大多数的重复的开发工作量。本发明采用基于模板驱动的设计方案来实现各层级代码的自动生成方式。
附图说明
图1为本发明的框架流程图;
图2为本发明实施例提供的生成操作流程图。
具体实施方式
下面将结合附图以及具体实施例来详细说明本发明,在此本发明的示意性实施例以及说明用来解释本发明,但并不作为对本发明的限定。
参照图1和图2,本发明提供了具体的实施方案如下:
一种代码生成方法,包括如下步骤:
1)获取在线配置信息;
2)调度组装模块调用数据库模块连接数据库;
3)调度组装模块调用模板解析模块依次解析数据库表映射模块、实体类生成模块、注解生成模块生成实体对向和映射文件,
4)代码生成模块:包括
A:调度组装模块调用模板解析模块解析数据持久层模板模块后并调用持久生成模块生成持久层代码;
B:调度组装模块调用模板解析模块解析服务器层模板模块后并调用服务器层生成模块生成服务器层代码;
C:调度组装模块调用模板解析模块解析控制器层模板模块后并调用控制器层生成模块生成控制器层代码;
D:调度组装模块调用模板解析模块解析JSP页面模板模块后并调用JSP页面生成模块生成JSP页面生成代码;
5)步骤4)后调度组装模块将步骤4)生成的代码生成打包文件。
在步骤1)中,先读取MyBatis Generator的XML配置文件,然后在获取XML配置文件后自动重置MyBatis Generator的XML配置中的数据库连接、表、类、包的数据信息。
在步骤4)中,执行MyBatis Generator自动生成对象,代码生成。
本发明还提供了一种代码生成器,包括
在线配置模块,用于在线配置数据库连接、表、类、包的信息;
调度组装模块,用于调用模板解析模块依次解析数据库表映射模块、实体类生成模块、注解生成模块生成实体对向和映射文件;
以及用于调用模板解析模块解析代码生成模块生成持久层代码、服务器层代码、控制器层代码以及JSP页面生成代码;
代码打包模块;用于持久层代码、服务器层代码、控制器层代码以及JSP页面生成代码生成打包文件。
所述持久层代码由持久生成模块生成,所述持久生成模块由数据持久层模板模块调用。
所述服务器层代码由服务器层生成模块生成,所述服务器层生成模块由服务器层模板模块调用。
所述控制器层代码由服务器层生成模块生成,所述控制器层生成模块由控制器层模板模块调用。
所述JSP页面生成代码由JSP页面生成模块生成,所述JSP页面生成模块由JSP页面模板模块调用。
参照图2:本发明提供了一种代码生成实际操作流程图。
步骤1)填写数据库连接、表、类、包信息;
步骤2)查询表的字段列表信息(字段、注释);
步骤3)点击生成按钮,表字段名转换成对象属性;
步骤4)收集表字段的显示顺序,并排除无显示定义顺序的字段;
步骤5)收集表字段的导出顺序,并排除无导出定义顺序的字段;
步骤6)执行字段显示顺序、导出顺序排序;
步骤7)读取MyBatis Generator的XML配置文件;
步骤8)获取页面填写的配置相关信息,自动重置MyBatis Generator的XML配置中的数据库连接、表、类、包等相关信息;
步骤9)执行MyBatis Generator自动生成对象(根据查询获取表字段的)、Dao(数据持久层)、mybatis的SQL操作映射XML文件;
步骤10)依次根据控制层模板生成控制器类,服务层模板生成服务层接口以及实现类。
以上对本发明实施例所公开的技术方案进行了详细介绍,本文中应用了具体实施例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;同时,对于本领域的一般技术人员,依据本发明实施例,在具体实施方式以及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种代码生成方法,其特征在于,包括如下步骤:
1)获取在线配置信息;
2)调度组装模块调用数据库模块连接数据库;
3)调度组装模块调用模板解析模块依次解析数据库表映射模块、实体类生成模块、注解生成模块生成实体对向和映射文件,
4)代码生成模块:包括
A:调度组装模块调用模板解析模块解析数据持久层模板模块后并调用持久生成模块生成持久层代码;
B:调度组装模块调用模板解析模块解析服务器层模板模块后并调用服务器层生成模块生成服务器层代码;
C:调度组装模块调用模板解析模块解析控制器层模板模块后并调用控制器层生成模块生成控制器层代码;
D:调度组装模块调用模板解析模块解析JSP页面模板模块后并调用JSP页面生成模块生成JSP页面生成代码;
5)步骤4)后调度组装模块将步骤4)生成的代码生成打包文件。
2.根据权利要求1所述的代码生成方法,其特征在于,在步骤1)中,先读取MyBatisGenerator的XML配置文件,然后在获取XML配置文件后自动重置MyBatis Generator的XML配置中的数据库连接、表、类、包的数据信息。
3.根据权利要求1所述的代码生成方法,其特征在于,在步骤4)中,执行MyBatisGenerator自动生成对象,代码生成。
4.一种代码生成器,其特征在于,包括
在线配置模块,用于在线配置数据库连接、表、类、包的信息;
调度组装模块,用于调用模板解析模块依次解析数据库表映射模块、实体类生成模块、注解生成模块生成实体对向和映射文件;
以及用于调用模板解析模块解析代码生成模块生成持久层代码、服务器层代码、控制器层代码以及JSP页面生成代码;
代码打包模块;用于持久层代码、服务器层代码、控制器层代码以及JSP页面生成代码生成打包文件。
5.根据权利要求4所述的代码生成器,其特征在于,所述持久层代码由持久生成模块生成,所述持久生成模块由数据持久层模板模块调用。
6.根据权利要求4所述的代码生成器,其特征在于,所述服务器层代码由服务器层生成模块生成,所述服务器层生成模块由服务器层模板模块调用。
7.根据权利要求4所述的代码生成器,其特征在于,所述控制器层代码由服务器层生成模块生成,所述控制器层生成模块由控制器层模板模块调用。
8.根据权利要求4所述的代码生成器,其特征在于,所述JSP页面生成代码由JSP页面生成模块生成,所述JSP页面生成模块由JSP页面模板模块调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710667186.XA CN107479883A (zh) | 2017-08-07 | 2017-08-07 | 一种代码生成方法及代码生成器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710667186.XA CN107479883A (zh) | 2017-08-07 | 2017-08-07 | 一种代码生成方法及代码生成器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107479883A true CN107479883A (zh) | 2017-12-15 |
Family
ID=60598764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710667186.XA Pending CN107479883A (zh) | 2017-08-07 | 2017-08-07 | 一种代码生成方法及代码生成器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107479883A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052321A (zh) * | 2017-12-28 | 2018-05-18 | 杭州趣链科技有限公司 | 一种基于配置信息自动生成区块链智能合约的方法 |
CN108399081A (zh) * | 2018-02-09 | 2018-08-14 | 广州市两棵树网络科技有限公司 | 一种MyBatis逆向工程生成器 |
CN108509199A (zh) * | 2018-03-09 | 2018-09-07 | 平安科技(深圳)有限公司 | 自动生成中文注释的方法、装置、设备及存储介质 |
CN109240670A (zh) * | 2018-11-21 | 2019-01-18 | 北京锐安科技有限公司 | 模块化的软件开发方法、系统、设备及介质 |
CN109471619A (zh) * | 2018-11-20 | 2019-03-15 | 北京千丁互联科技有限公司 | Mybatis代码生成方法、装置及计算机终端 |
CN110069246A (zh) * | 2019-03-28 | 2019-07-30 | 北京众智益成科技有限公司 | 一种Java Web应用快速开发的平台系统及其应用 |
CN110083340A (zh) * | 2019-03-19 | 2019-08-02 | 深圳壹账通智能科技有限公司 | 代码生成方法、装置、计算机设备及存储介质 |
CN110147225A (zh) * | 2019-04-02 | 2019-08-20 | 平安科技(深圳)有限公司 | 一种代码生成方法、装置及计算机设备、存储介质 |
CN110333848A (zh) * | 2019-05-08 | 2019-10-15 | 重庆天蓬网络有限公司 | 自制eclipse开发平台插件的方法 |
CN111078213A (zh) * | 2018-10-18 | 2020-04-28 | 马上消费金融股份有限公司 | 一种代码生成方法及代码生成装置 |
CN111190587A (zh) * | 2019-12-26 | 2020-05-22 | 曙光信息产业(北京)有限公司 | 一种基于jdbc自动生成工程化前端代码的方法及系统 |
CN113448552A (zh) * | 2020-03-27 | 2021-09-28 | 北京沃东天骏信息技术有限公司 | 代码生成方法和装置 |
CN114756554A (zh) * | 2022-06-13 | 2022-07-15 | 中建电子商务有限责任公司 | 一种基于MyBatis框架的数据查询处理方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473108A (zh) * | 2013-08-12 | 2013-12-25 | 福建富士通信息软件有限公司 | 一种Java代码生成方法 |
-
2017
- 2017-08-07 CN CN201710667186.XA patent/CN107479883A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473108A (zh) * | 2013-08-12 | 2013-12-25 | 福建富士通信息软件有限公司 | 一种Java代码生成方法 |
Non-Patent Citations (2)
Title |
---|
YCBLUS: "使用模板自动生成controller层代码", 《HTTPS://WWW.CNBLOGS.COM/YCBLUS/P/5583873.HTML》 * |
码迷: "SSM框架整合", 《HTTP://WWW.MAMICODE.COM/INFO-DETAIL-1680078.HTML》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052321A (zh) * | 2017-12-28 | 2018-05-18 | 杭州趣链科技有限公司 | 一种基于配置信息自动生成区块链智能合约的方法 |
CN108052321B (zh) * | 2017-12-28 | 2020-12-25 | 杭州趣链科技有限公司 | 一种基于配置信息自动生成区块链智能合约的方法 |
CN108399081A (zh) * | 2018-02-09 | 2018-08-14 | 广州市两棵树网络科技有限公司 | 一种MyBatis逆向工程生成器 |
CN108399081B (zh) * | 2018-02-09 | 2021-01-26 | 广州洋葱时尚集团有限公司 | 一种MyBatis逆向工程生成器 |
CN108509199A (zh) * | 2018-03-09 | 2018-09-07 | 平安科技(深圳)有限公司 | 自动生成中文注释的方法、装置、设备及存储介质 |
CN111078213A (zh) * | 2018-10-18 | 2020-04-28 | 马上消费金融股份有限公司 | 一种代码生成方法及代码生成装置 |
CN109471619A (zh) * | 2018-11-20 | 2019-03-15 | 北京千丁互联科技有限公司 | Mybatis代码生成方法、装置及计算机终端 |
CN109240670A (zh) * | 2018-11-21 | 2019-01-18 | 北京锐安科技有限公司 | 模块化的软件开发方法、系统、设备及介质 |
CN110083340A (zh) * | 2019-03-19 | 2019-08-02 | 深圳壹账通智能科技有限公司 | 代码生成方法、装置、计算机设备及存储介质 |
CN110069246A (zh) * | 2019-03-28 | 2019-07-30 | 北京众智益成科技有限公司 | 一种Java Web应用快速开发的平台系统及其应用 |
CN110147225A (zh) * | 2019-04-02 | 2019-08-20 | 平安科技(深圳)有限公司 | 一种代码生成方法、装置及计算机设备、存储介质 |
CN110333848A (zh) * | 2019-05-08 | 2019-10-15 | 重庆天蓬网络有限公司 | 自制eclipse开发平台插件的方法 |
CN111190587A (zh) * | 2019-12-26 | 2020-05-22 | 曙光信息产业(北京)有限公司 | 一种基于jdbc自动生成工程化前端代码的方法及系统 |
CN113448552A (zh) * | 2020-03-27 | 2021-09-28 | 北京沃东天骏信息技术有限公司 | 代码生成方法和装置 |
CN114756554A (zh) * | 2022-06-13 | 2022-07-15 | 中建电子商务有限责任公司 | 一种基于MyBatis框架的数据查询处理方法 |
CN114756554B (zh) * | 2022-06-13 | 2022-09-30 | 中建电子商务有限责任公司 | 一种基于MyBatis框架的数据查询处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107479883A (zh) | 一种代码生成方法及代码生成器 | |
CN110381135A (zh) | 接口创建方法、服务请求方法、装置、计算机设备和介质 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN107547237A (zh) | 虚拟网络功能vnf更新方法、装置和vnf包 | |
CN104885074B (zh) | 管理设计数据的云平台 | |
CN106776307A (zh) | 软件测试方法及系统 | |
CN107480053A (zh) | 一种软件测试数据生成方法及装置 | |
US20050268280A1 (en) | Encapsulating changes to a software application | |
CN104461531B (zh) | 一种报表系统自定义函数的实现方法 | |
CN102111282A (zh) | 一种基于电信业务的信息管理系统架构及其构建方法 | |
CN108255513A (zh) | 电子装置、基于springmvc的数据接口及其说明自动生成方法及存储介质 | |
CN107506190A (zh) | 基于Spring框架的XML文件修改方法及装置 | |
CN103853895B (zh) | Pcb设计方法及装置 | |
CN110083342A (zh) | 一种程序生成方法、装置以及计算机可读存储介质 | |
CN107133160B (zh) | 服务器和客户端 | |
CN107977260B (zh) | 任务提交方法及装置 | |
CN113849156B (zh) | OpenHarmony操作系统应用的无代码智能开发系统及其使用方法 | |
CN106354727A (zh) | 小部件文件生成方法和装置 | |
CN109885290A (zh) | 应用程序服务描述信息生成与发布方法、装置和存储介质 | |
CN105426183B (zh) | 一种表单验证方法 | |
CN104281584A (zh) | Xml数据库性能测试系统及方法 | |
CN111090976A (zh) | 基于动态数据的检验文档生成方法及装置 | |
CN110162299A (zh) | web程序及其快速开发框架、开发方法与相关设备 | |
CN111124924A (zh) | Api部署方法、装置、电子设备及存储介质 | |
CN110297945A (zh) | 基于xbrl的数据信息处理方法及系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171215 |