CodeGenerator代码生成器

CodeGenerator是一个JavaEE代码生成器,它可以帮助我们生成一个可以直接运行的JavaWeb工程。

1 生成的文件

这个代码生成器生成的代码包括简单的增删改查代码、配置文件和SwaggerUI页面。具体生成的文件包括:

代码文件:

持久化对象PO类

使用SpringMVC编写的Controller文件

Service层接口文件

使用Spring编写的ServiceImpl实现类

Dao层接口文件

使用Hibernate编写的DaoImpl实现类

配置文件:

SpringMVC的配置文件

Spring的配置文件

Hibernate的配置文件

web.xml文件

pom.xml文件

页面文件:SwaggerUI页面

2 实现原理

2.1 代码文件的生成

参照mybatis-generator-core-1.3.2.jar的实现原理,抽取出插件中对Java文件的封装和生成的核心代码,然后根据个人需求对它们进行精简和改写,使其能够生成控制层、业务层和持久层的Java代码。

2.2 配置文件的生成

使用FreeMarker模板引擎来生成配置文件。因为在配置文件中,需要动态改变的内容很少,所以我认为使用模板引擎技术来生成比较方便。

2.3 UI文件的生成

UI文件的生成过程就是一个文件夹拷贝操作。我将预先准备好的SwaggerUI文件放到生成器工程下,程序运行时就会将这些文件拷贝到新生成的工程下面。这样做的好处是不用自己去Swagger官网下载文件,然后手动将文件拷贝过去。

3 使用方式

3.1 下载源码

3.2 添加数据库信息

找到生成器源码的入口类(core.Main),修改主方法中指定的MySQL数据库的用户名、密码和数据库名。

3.3 生成代码

要生成正确的代码需要满足两个条件:一、数据库表必须有主键,而且主键必须满足单一、整型、自增三个特点。二、只能在Windows系统上运行程序,因为路径问题。

我们可以先在数据库中新建一张表(如用户表),SQL语句如下:

CREATE TABLE `user` (

`user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户主键' ,

`user_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名' ,

`user_birthday` date NULL DEFAULT NULL COMMENT '用户生日' ,

PRIMARY KEY (`user_id`)

)

ENGINE=InnoDB

DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci

COMMENT='用户表'

AUTO_INCREMENT=5

ROW_FORMAT=COMPACT;

然后运行程序,程序会读取指定数据库下的所有表格,然后针对每个表格生成基本的增删改查代码。程序执行完毕后,我们可以在桌面上找到一个新生成的名字为Project的工程。

最后我们使用IntelliJ IDEA打开(Open)刚生成的工程,可以看到工程中的代码结构如下图所示:

01-工程结构图.png

3.4 修改工程设置

需要修改两个地方:第一个是让编译器找到web.xml,第二个是让编译器知道web目录所在的路径。具体操作如下:

02-修改工程设置.gif

3.5 添加Tomcat服务器

03-添加Tomcat服务器.gif

3.6 启动服务器

Tomcat服务器成功启动后,浏览器自动会打开SwaggerUI的页面。我们可以在页面中看到生成器为用户表生成的增删改查API。

04-SwaggerUI页面.png

3.7 测试增删改查方法

3.7.1 测试增加用户:

05-增加操作.gif

3.7.2 测试删除用户

06-删除操作.gif

3.7.3 测试修改用户:

07-修改操作.gif

3.7.4 测试按主键查用户:

08-按主键查.gif

3.7.5 测试查询所有用户:

09-查询所有.gif

4 使用场景

因为目前还没有对生成器源码进行重构,所以它的扩展性很差。我觉得这个生成器现在只能用在教学和娱乐场景。

10.jpg

code generator java_CodeGenerator代码生成器相关推荐

  1. AS插件-Android Parcelable code generator.

    概述 生成实现了Parcelable接口的代码的插件 下载安装 1.在线安装 输入 Android Parcelable code generator ,点击安装即可,安装之后 重启,会看到上图选中部 ...

  2. ean13解码 matlab,ean13: EAN13 Code Generator

    EAN13 Introduction JavaScript EAN13 code generator. DEMO Use the code ean13.js (main library) V2EX P ...

  3. 解决The code generator has deoptimised the styling of xxxx.js as it exceeds the max of 500kb

    解决The code generator has deoptimised the styling of xxxx.js as it exceeds the max of 500kb 1.需求背景 最近 ...

  4. Auto Code Generator

    Auto Code Generator 前言 一.基本介绍 二.详细介绍 1,通过File->LoadFile 加载excel 配置表格,表格内配置了各个配置项的参数 如下图. 2,File-& ...

  5. eclipse的jmr code generator插件

    eclipse的jmr code generator插件 您可以使用模板(类似jsp)从数据库生成java代码. 编写模板并根据自己的项目设置任务,而不改变项目. 例如,可以在几分钟内生成CRUD. ...

  6. Plugin error: Plugin ‘Android Code Generator‘ is compatible with IntelliJ IDEA only because it does

    目录 Plugin error: Plugin 'Android Code Generator' is compatible with IntelliJ IDEA only because it do ...

  7. MyBatis Generator:代码生成器

    目录 一.简介 二.使用步骤 1.编写MGB的配置文件 2.运行代码生成器代码 3.简单测试 4.QBC风格的带条件查询测试 一.简介 MyBatis Generator: 简称MBG,是一个专门为M ...

  8. JEECG(J2EE Code Generation) 基于代码生成器J2EE智能开发框架 杂记:发布新版本 JEECG_v2.0

    版本升级记录: 1.数据库脚本初始化自动化(支持多种数据库) 2.权限完善,增加按钮权限功能 3.增加代码生成器:单表模型和一对多(父子表)例子 4.增加Spring jdbc分页(SQL分离代码写法 ...

  9. 【QR Code Generator】开源免费响应式QRcdr二维码生成网站源码

    介绍: 开源免费响应式QRcdr二维码,一款基于PHP编写的二维码在线生成系统,只需点击几下就可以生成您的个人二维码,上传您的徽标或水印,选择自定义颜色,生成多种类型,选择一个图案并下载最终的二维码图 ...

最新文章

  1. AcWing 523. 组合数问题
  2. 蓝桥杯java 基础练习 十六进制转十进制
  3. 信息学奥赛C++语言:分糖果
  4. FPGA状态机一段式
  5. IT人员必学最基础知识(一)——总括
  6. Post 页面数据,使用boundary来格式化
  7. 作为空降领导,该如何做?
  8. 子层div浮动导致父层无法自适应高度的解决方法
  9. 据说是最健康的作息时间表
  10. org.hibernate.StaleStateException: Batch update returned unexpected row cou...
  11. 搭建gos_Gos ast Package pt 1的好东西
  12. 试除法解决分解质因数
  13. 问世到现在电子计算机的性能,一级计算机练习.doc
  14. 背景图自适应屏幕大小
  15. css文本溢出时候,如何把多余的文字显示省略号
  16. 视频监控网络使用PON网络传输解决方案相关问题解答
  17. 福建师范大学计算机科学系,福建师范大学数学与计算机科学学院-福建师范大学数学与信息学院.PDF...
  18. 光储并网VSG系统Matlab simulink仿真模型 系统前级直流部分包括光伏阵列、变换器、储能系统和双向dcdc变换器
  19. 互联网日报 | 小米10至尊纪念版正式发布;苏宁易购零售云营收实现数百亿;高德打车企业版上线...
  20. 华平信息技术股份有限公司 AVCON6 系统管理平台存在 strut2 远程代码执行漏洞

热门文章

  1. 增值税电子发票识别-OCR
  2. win11疑难解答怎么进
  3. linux 全选 右键快捷键,linux全选快捷键,linux关闭窗口快捷键
  4. linux mii 调试总结
  5. 发布汇编集成编译器Win-Masm v2.2
  6. Direcxt11教程八之FontEngine(字体实现)
  7. 题目 1546: 班级排名
  8. anchor box 是如何确定的?
  9. 如何使用Boxer在Mac上轻松玩经典DOS游戏
  10. MATLAB图像处理学习——图像增强技术(附图像增强方法代码)