# CodeGenerator
**Repository Path**: bbfbbf/CodeGenerator
## Basic Information
- **Project Name**: CodeGenerator
- **Description**: 可视化代码生成器, 可同时使用FreeMarker 和 Velocity 模板
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 147
- **Created**: 2016-06-01
- **Last Updated**: 2024-06-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
CodeGenerator
====
这是一个使用 Freemarker 和 Velocity 模板来生代码的工具。
本生成器只是将数据库中的表结构数据提取出来,然后将这份结构模型提交给模板引擎, 根据你自定义的模板生成你需要的代码。
## 配置文件
```xml
lib/mysql-connector-java-5.1.36-bin.jar
D:\temp
org.joy
test
./entity.ftl
${targetProject}\src\${basePackage}\${moduleName}\entity\
${table.className}.java
UTF-8
```
## 模板中可用的变量和方法
类型|属性名|说明
----|----|----
String | targetProject | 目标工程路径(代码保存的基准路径)
String | basePackage | 基准包
String | moduleName | 模块名
String | author | 开发者
Map | template | 模板是否可用(是否勾选生成)
### Table对象
#### 可用的属性
类型|属性名|说明
----|----|----
String | tableName | 表名
String | tableType | 表类型
String | tableAlias | 表别名
String | remarks | 表注释
String | remarksUnicode | 表注释转Unicode后的字符串
String | className | 实体类名
String | javaProperty | 实体类作为属性时的名字 == ${table.className?uncap_first}
List | primaryKeys | 主键集
List | baseColumns | 基本字段集
List | columns | 所有字段 == primaryKeys + baseColumns
List | importedKeys | 所有importedKeys
List | exportedKeys | 所有exportedKeys
boolean | hasDateColumn | 是否有日期类型字段
boolean | hasBigDecimalColumn | 是否有BigDecimal 字段
boolean | hasNotNullColumn | 是否有非空的基本类型字段
boolean | hasNotBlankColumn | 是否有非空的String 字段
boolean | hasSearchableColumn | 是否有可搜索的字段
### Column对象
#### 属性
类型|属性名|说明
----|----|----
String | columnName | 字段名
boolean | primaryKey | 是否为主键
boolean | foreignKey | 是否为外键
int | size | 字段长度
int | decimalDigits | 小数位长度
boolean | nullable | 是否可空
boolean | autoincrement | 是否自增
boolean | unique | 是否唯一值
boolean | indexed | 是否有索引
String | defaultValue | 默认值
String | remarks | 注释
String | remarksUnicode | 数字转Unicode后的字符串
int | jdbcType | 对应的java.sql.Types
String | jdbcTypeName | 对应jdbcType的名称
String | javaProperty | 属性名
String | javaType | java类型,比如String、Long、Integer
String | javaPrimitiveType | java基本类型,如果不是基本类型时等同于javaType
String | fullJavaType | 完整的Java类型,比如java.lang.String
String | getterMethodName | Get方法名
String | setterMethodName | Set方法名
boolean | display | 是否显示
boolean | searchable | 是否可搜索
boolean | sortable | 是否可排序
String | dict | 数据字典名
#### 方法
类型|属性名|说明
----|----|----
boolean | isString() | 是否是字符串
boolean | isFloatNumber() | 是否是浮点型,含Float、Double、BigDecimal
boolean | isIntegerNumber() | 是否是整型,含Byte、Short、Integer、Long
boolean | isBigDecimal() | 是否是BigDecimal类型
boolean | isBoolean() | 是否是布尔类型
boolean | isDate() | 是否有日期类型,含Date、Timestamp、Time
boolean | isBLOB() | 是否有BLOB、CLOB、LONGVARCHAR、LONGVARBINARY或VARBINARY
boolean | isPrimitiveType() | 是否是基本类型
boolean | hasDict() | 是否使用了数据字典
### Key
类型|属性名|说明
----|----|----
String | pkTableName | PKTABLE_NAME
String | pkColumnName | PKCOLUMN_NAME
String | fkTableName | FKTABLE_NAME
String | fkColumnName | FKCOLUMN_NAME
Integer | seq | KEY_SEQ
##作者
ptma@163.com