CodeGenerator代码生成器

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 下载源码

源码地址:https://github.com/GitHub-LiChengPeng/CodeGenerator

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)刚生成的工程,可以看到工程中的代码结构如下图所示:


CodeGenerator代码生成器_第1张图片
01-工程结构图.png

3.4 修改工程设置

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


CodeGenerator代码生成器_第2张图片
02-修改工程设置.gif

3.5 添加Tomcat服务器

CodeGenerator代码生成器_第3张图片
03-添加Tomcat服务器.gif

3.6 启动服务器

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


CodeGenerator代码生成器_第4张图片
04-SwaggerUI页面.png

3.7 测试增删改查方法

3.7.1 测试增加用户:

CodeGenerator代码生成器_第5张图片
05-增加操作.gif

3.7.2 测试删除用户

CodeGenerator代码生成器_第6张图片
06-删除操作.gif

3.7.3 测试修改用户:

CodeGenerator代码生成器_第7张图片
07-修改操作.gif

3.7.4 测试按主键查用户:

CodeGenerator代码生成器_第8张图片
08-按主键查.gif

3.7.5 测试查询所有用户:

CodeGenerator代码生成器_第9张图片
09-查询所有.gif

4 使用场景

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


10.jpg

你可能感兴趣的:(CodeGenerator代码生成器)