Skip to content

jinfang134/CodeGenerator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

代码生成器

  时间: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.ftl

使用此规则命名的模板文件,只会生成一个文件,常用于生成数据库文档及其他一些建表语句之类的文档。

@前面的部分表示相对于生成目录的路径,如这个模板将会在生成目录下面生成一个doc文件夹,并生成一个“数据库文档.html”文件。

类名拼接规则

一个java的类名由几个部分拼接而成。

基础的包名+模块名+表名去掉前缀+模板文件名中#后面的部分。

如:基础包名:com.hello

模板文件名:service#Service.java.ftl

表名:t_rtm_device

则最终的类名为:

com.hello+service+Device+Service.java

即:com.hello.service.DeviceService.java

 

字段说明

数据表(table)

描述数据库中的某一个表 主要包括以下变量:

字段名 类型 描述
packagename String 包名,即基础包名
name String 数据库中的原始表名
columnlist List 列集合
comment String 表备注
classname String 类名(即去掉表名前缀,并将首字母转为大写)
lowername String 去掉前缀的表名

列(column)

描述数据表中的某一列,主要包括以下变量

名称 类型 说明
name String 列名(去掉了_,并转为驼峰命名法)
comment String 备注,建议默认在数据库里都写上备注,代码里的所有注释都来源于此备注
type String Java数据类型
length int 数据长度
bigname String 将列名变为首字母大写
columnname String 数据表中的原始列名
isnull String 是否为空(YES或者NO)
columntype String 数据库中的数据类型
columnkey String 是否主键
extra String 其它

 

使用方法

使用方法非常简单,输入数据库的地址,账号,密码以后,点击连接数据库,连接成功会加载所有的数据库,选择你需要的数据库,点击加载表按钮,软件会将此数据库的所有表都加载进来。

选择你需要生成代码的表,填入必须的参数,点击生成即可。

注:表名前缀可同时填入多个,用于过滤不同的前缀,不同的前缀间用英文逗号,间隔。

 

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published