时间:2015年12月4日18:02:30
V0.1
Author: 左金芳
此代码生成器基于freemarker模板引擎进行开发,目前仅支持mysql数据库,采用java语言编写,可自定义模板来生成任何样板代码,极大的减少重复代码的编写时间,通过自定义的html模板,也可用于生成数据库文档,从而从繁杂的数据库文档编写中解脱出来。
用于批量生成代码,加载数据库以后,选择存放模板的文件夹,配置一下必要的一些参数,系统将自动根据文件夹中的模板来生成所有选择的表的代码。
- 此功能是最近开发的,最为高效快捷。
选择表以后,在编辑框中编写模板,点击执行以后,在右侧的编辑框中生成需要的代码。 这个功能可以用于验证模板是否正确,也可以用于生成少量的代码。
- 重点是快速,简单。
可以载入一个模板到编辑框当中,也可以直接在编辑框中编写模板,模板编辑好以后,选择表,填写必要的参数,就可以进行代码生成。
- 这个功能可用于测试模板编写是否正确。
这个功能比较特别,其它功能的元数据是来自于表的定义,而这个功能的元数据来自于数据表中的内容,所以要想使用此功能,先要在数据表中插入相应的元数据记录。
- 系统会将表中的所有记录放到一个名为
list
的对象中,在模板中可以使用如下的语法来遍历表中的数据。
<#list list as l>
${l.id} ${l.title}
</#list>
例如:service#Service.java.ftl
#前面表示模块名称,#后面表示需要拼接到类名后面的
两个.之间表示生成文件的类型。
使用此种规则命名的模板,每张表都会生成一个文件。
使用此规则命名的模板文件,只会生成一个文件,常用于生成数据库文档及其他一些建表语句之类的文档。
@前面的部分表示相对于生成目录的路径,如这个模板将会在生成目录下面生成一个doc文件夹,并生成一个“数据库文档.html”文件。
一个java的类名由几个部分拼接而成。
基础的包名+模块名+表名去掉前缀+模板文件名中#后面的部分。
如:基础包名:com.hello
模板文件名:service#Service.java.ftl
表名:t_rtm_device
则最终的类名为:
com.hello+service+Device+Service.java
即:com.hello.service.DeviceService.java
描述数据库中的某一个表 主要包括以下变量:
字段名 | 类型 | 描述 |
---|---|---|
packagename | String | 包名,即基础包名 |
name | String | 数据库中的原始表名 |
columnlist | List | 列集合 |
comment | String | 表备注 |
classname | String | 类名(即去掉表名前缀,并将首字母转为大写) |
lowername | String | 去掉前缀的表名 |
描述数据表中的某一列,主要包括以下变量
名称 | 类型 | 说明 |
---|---|---|
name | String | 列名(去掉了_,并转为驼峰命名法) |
comment | String | 备注,建议默认在数据库里都写上备注,代码里的所有注释都来源于此备注 |
type | String | Java数据类型 |
length | int | 数据长度 |
bigname | String | 将列名变为首字母大写 |
columnname | String | 数据表中的原始列名 |
isnull | String | 是否为空(YES或者NO) |
columntype | String | 数据库中的数据类型 |
columnkey | String | 是否主键 |
extra | String | 其它 |
使用方法非常简单,输入数据库的地址,账号,密码以后,点击连接数据库,连接成功会加载所有的数据库,选择你需要的数据库,点击加载表按钮,软件会将此数据库的所有表都加载进来。
选择你需要生成代码的表,填入必须的参数,点击生成即可。
注:表名前缀可同时填入多个,用于过滤不同的前缀,不同的前缀间用英文逗号,间隔。