# 代码生成工具
**Repository Path**: junge0114/codeTool
## Basic Information
- **Project Name**: 代码生成工具
- **Description**: 基于velocity模板生成,可以自定义自己的模板,支持在线设计表结构,设计过程无需数据库支持
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2024-04-03
- **Last Updated**: 2024-04-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#代码生成器
##原理
基于velocity模板生成,模板格式语法如下,更多详细的可自行查阅
>1、"#"用来标识Velocity的脚本语句,包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等;
如:
#if($info.imgs)
#else
#end
>2、"$"用来标识一个对象(或理解为变量);如
如:$i、$msg、$TagUtil.options(...)等。
>3、"{}"用来明确标识Velocity变量;
比如在页面中,页面中有一个$someonename,此时,Velocity将把someonename作为变量名,若我们程序是想在someone这 个变量的后面紧接着显示name字符,则上面的标签应该改成${someone}name。
>4、"!"用来强制把不存在的变量显示为空白。
如当页面中包含$msg,如果msg对象有值,将显示msg的值,如果不存在msg对象同,则在页面中将显示$msg字符。这是我们不希望的,为了把不存 在的变量或变量值为null的对象显示为空白,则只需要在变量名前加一个“!”号即可。
如:$!msg
##实现方式
>1、 为了便于多项目的生成,采用了模板的方式,不同项目采用不同的模板,可以在生成是选择指定的模板
>2、 当选择了模板之后标题根据名字后面加上.vm即可,如果名称或文件夹中需要通过替换的可以使用标识符用于替换
##项目基本介绍
>1、项目启动 pom.xml中设置了基于jetty的启动方式
>2、项目的用途 用于根据自定义的模板来生成代码,模板可以自行定义,项目内嵌的demo是基于 springBoot+jpa+thymeleaf 的项目
>3、生成器代码框架 本生成器是基于 springMVC+spring+angularJs 开发的,项目没有持久层,数据直接通过xml保存的
##设计自己的模板
>1、模板位置
模板文件位于项目下的 src/main/resources/template文件夹下 ,该目录下可以自行添加目录,每个目录为一套模板
当需要建立自己的模板时建议新建文件夹来设计,velocityTemp为内置模板可以作为参考
>2、配置文件说明
配置文件位于src/main/resources/config.properties文件中
osframe.file.path 代表临时文件的存储路径
osframe.auto.author 代码生成的作者
osframe.auto.page.type url地址的前缀
osframe.auto.default.template 默认的模板key,key代表模板文件夹名称
osframe.auto.template.key.velocityTemp 模板文件夹对应的中文名称,便于页面选择,该属性前面部分未固定的字符,最后面一个为模板文件夹名称
## 使用说明 按如下7步
使用参考地址: https://my.oschina.net/u/2351717/blog/714818
>1、启动
修改下的src/main/resources目录下的config.properties文件中的osframe.file.path(附件地址)和osframe.auto.author(作者)
在jetty中启动项目,访问:http://localhost:8888,即可看到模块设计和表设计界面。
>2、访问地址
http://localhost:8888/
>3、创建模块
必须先配置模块,然后左侧表设计下方会出现配置的模块,点击模块后,再进行表配置。
模块配置,比较简单,重点配置好 模块名称和模块路径,如:新闻模块 包路径为:os.news
然后就是表结构设计,选中左侧的模块名称,右侧会出现表列表点击新建即可。
>4、创建表
表直接设置好表名、表描述和是否生成代码,
>5、创建字段
字段名:必须,命名以下划线分隔,如:lb_name
字段描述:必须,字段的中文含义
字段长度:非必须
是否必填:非必须
Java字段类型:必须,选择各自类型
数据库字段类型:非必须
>6、生成代码
>7、下载代码
##常用的变量
>注释相关
>>info 类的描述信息
>>author 作者名字
>>time 创建时间
>类相关
>>entity 实体名称
>>entityVar 实体变量(首字母小写)
>>packages 模块包名
>>pageType 页面类型
>实体相关
>>table 表名
>>fieldList 字段列表
>>>fieldType 字段类型
>>>fieldName 字段名
>>>fieldNameMax 字段名首字母大写
>>>fieldLabel 字段中文名
>>>fieldLength 字段长度
>>>fieldIsNull 是否允许为空,默认允许
>>>tableField 表字段
>页面相关
>>jspEntityTitle 实体的标题
>>fieldList 字段列表
>>> fieldName 字段名
>>> fieldLabel 字段中文
>>> fieldName 字段名