# generate-code **Repository Path**: Jakewabc/generate-code ## Basic Information - **Project Name**: generate-code - **Description**: 代码生成器 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: 2.0.0 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-24 - **Last Updated**: 2021-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 代码生成器[code-generator] 这个代码生成器是之前为自己的项目风格量身打造的,所以目前使用的版本控制器还是自己的。现在手头时间有些紧,还没来得及处理。现在的这个版本控制器源码我已经开源到GitHub上了,可以直接下载下来,使用 `mvn install`命令安装到本地仓库,然后这个代码生成器就可以使用了。 版本控制器地址:https://github.com/gl-stars/small-study-case # 一、template模板中变量的来源 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2019122608424625.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODUzNDQ3,size_16,color_FFFFFF,t_70) 模板中的这些变量都在utils包中定义的,有些变量是在配置文件 `generator.properties`中配置的。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191226084539520.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODUzNDQ3,size_16,color_FFFFFF,t_70) 这里需要注意:实体类中定义了一个表的对象,是专门用于存储表的相关信息。也定义了一个表字段的对象,专门存储表字段的相关信息的。而表中有一个集合 `private List columns;` 这个是存储当前表的字段,不包括主键。而模板中的`pk`指的是 `TableEntity`对象中的 `pk`。 # 二、分页 `MybatisPlusAutoConfigure`将自动填充注入,并实例化分页拦截器。 - 分页 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020052922483731.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODUzNDQ3,size_16,color_FFFFFF,t_70) 直接实例化分页拦截器就搞定,不需要任何配置就可以。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200529225035931.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODUzNDQ3,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200529225208318.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODUzNDQ3,size_16,color_FFFFFF,t_70) `MybatisPlusAutoConfigure`需要在 `META-INF/spring.factories`文件中指定加载,否则配置无效。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020052922531640.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODUzNDQ3,size_16,color_FFFFFF,t_70) # 三、使用 ## 3.1、查询所有表 ```http localhost:7300/generator/list ``` ## 3.2、代码生成 ```http localhost:7300/generator/code?tables=make_an_appointment,order_form&package=com.central&moduleName=after&author=stars&display=true ``` 在模板下面有一个 `Mapper.xml.vm`和 `Mapper-copy.xml.vm`文件,这两个文件的作用都是一样的,但是后者会更全面。为了考虑到今后可能会添加数据字段的问题,代码生成的不要太多,避免后期更改麻烦。所以建议使用前者,默认的是使用前者的。如果想要使用后者,将前者的删除,将后者的名称改为前者的文件名就OK。 `display`是否生成 `@Mapper`注解,考虑到有些代码可能是在父功能中使用,而其他功能通过jar的形式引入,那么`@Mapper`注解派不上用场,所以这个也是动态决定的。
参数 默认值 是否必须 描述
tables 需要生成的表名称,多张使用英文逗号隔开。
package com.central 生成代码的包名
moduleName after 工程名,生成代码后,包名和工程名在一起组成完成的包名,例如:com.central.after
author stars 作者名
email 2115g@sina.com 邮箱
tablePrefix "" 表前缀,默认生成实体类时,会过滤掉表的前缀。
display true 是否显示@Mapper注解
isFacade true 是否生成前端控制器
IdType AUTO 主键策略
  • AUTO(数据库ID自增)
  • INPUT(用户输入ID)
  • ID_WORKER(全局唯一ID)
  • UUID(全局唯一ID)
  • NONE(该类型为未设置主键类型)
  • ID_WORKER_STR(字符串全局唯一ID)