## 使用后端代码生成器共需要两步(默认JPA代码生成) > 使用代码生成器可不运行项目(自动生成表需要启动项目),这里为启动项目后生成代码的演示 * 第一步:输入实体类名生成代码 * 在`cn.exrick.xboot.generator.XbootGenerator`中输入你的实体类名后运行主函数即可,当然可修改其他配置信息(若各文件已存在,不会覆盖生成) ![](https://i.loli.net/2018/08/26/5b8277009311e.png) * 运行后提示生成成功 ![](https://i.loli.net/2018/08/26/5b82771c72ecf.png)![](https://i.loli.net/2019/10/18/fuCQtUdv3xzAhZ6.png) * 若生成错误可删除刚生成的代码 ![](https://i.loli.net/2018/08/26/5b82771334177.png) * 项目已运行且已使用热更新工具,生成代码后查看日志稍等片刻,可以在数据库看到JPA已帮我们建好了表,已包含XBootBaseEntity通用字段(表名根据实体类名驼峰法转换) ![](https://i.loli.net/2018/08/26/5b82785da9454.png) * 第二步:输入字段 * 我们找到刚生成的实体类,输入需要的字段,@ApiModelProperty为swagger接口文档注释,还可以使用@Column注解做字段标注,详见文末说明,若不想入库的字段可以加上相应注解,见基本配置文档 ![](https://i.loli.net/2018/08/26/5b827b8ad8ab0.png) * 稍等片刻热更新后,我们可以看到数据库中字段变化 ![](https://i.loli.net/2018/08/26/5b827ba366252.png) * 到此一个实体类的基本增删改接口就已经完成了,打开在线接口文档即可进行测试[http://localhost:8888/swagger-ui.html](http://localhost:8888/swagger-ui.html) ![QQ截图20180826180920.png](https://i.loli.net/2018/08/26/5b827cd30aa26.png) #### 树形结构相关代码生成 * 该字段设为true后将自动生成树形结构相关所需添加接口以及字段 ~~~ /** * 是否生成树形结构相关接口 * 建议仅需修改 */ private static final Boolean isTree = false; ~~~ * 可生成接口预览 ![](https://i.loli.net/2019/10/18/i5GoLDCqsAMQje7.png) #### JPA工作流相关代码生成(完整版) * 该字段设为true后将自动生成Activiti相关所需添加接口以及字段 ~~~ /** * 是否生成关联工作流相关接口 * 建议仅需修改 */ private static final Boolean activiti = false; ~~~ #### @Column注解补充说明 ~~~ unique属性表示该字段是否为唯一标识,默认为false。如果表中有一个字段需要唯一标识,则既可以使用该标记,也可以使用@Table标记中的@UniqueConstraint。 nullable属性表示该字段是否可以为null值,默认为true。 insertable属性表示在使用“INSERT”脚本插入数据时,是否需要插入该字段的值。 updatable属性表示在使用“UPDATE”脚本插入数据时,是否需要更新该字段的值。insertable和updatable属性一般多用于只读的属性,例如主键和外键等。这些字段的值通常是自动生成的。 columnDefinition属性表示创建表时,该字段创建的SQL语句,一般用于通过Entity生成表定义时使用。 table属性表示当映射多个表时,指定表的表中的字段。默认值为主表的表名。有关多个表的映射将在本章的5.6小节中详细讲述。 length属性表示字段的长度,当字段的类型为varchar时,该属性才有效,默认为255个字符。 precision属性和scale属性表示精度,当字段类型为double时,precision表示数值的总长度,scale表示小数点所占的位数。 ~~~ ## 新增Mybatis-Plus后端代码生成器 * 找到`cn.exrick.xboot.generator.XbootMPGenerator`工具类,使用步骤同上,可自动生成相应mapper.xml空白文件至`resources/mapper`中 ![](https://i.loli.net/2019/04/11/5caf233d0ad6b.png) * 可生成接口预览 ![](https://i.loli.net/2019/04/11/5caf5c87bd0c1.png)