CodeGenerator是一个使用Freemarker和Velocity模板来生代码的工具。
本生成器只是将数据库中的表结构数据提取出来,然后将这份结构模型提交给模板引擎,根据你自定义的模板生成你需要的代码。
配置文件 <?xml version="1.0" encoding="utf-8" standalone="no"?> <configuration> <classpath> <!-- 引入JDBC驱动,手动添加 --> <entry>lib/mysql-connector-java-5.1.36-bin.jar</entry> </classpath> <!-- 代码生成目标基准目录 --> <tagertProject>D:\temp</tagertProject> <!-- 基本包 --> <basePackage>org.joy</basePackage> <!-- 模块名 --> <moduleName>test</moduleName> <templates> <!-- 模板 ,手动添加 --> <template name="实体类" engine="freemarker"> <!-- 模板文件 --> <templateFile>./entity.ftl</templateFile> <!-- 文件路径 --> <targetPath>${tagertProject}\src\${basePackage}\${moduleName}\entity\</targetPath> <!-- 文件名 --> <targetFileName>${table.className}.java</targetFileName> <!-- 文件编码 --> <fileEncoding>UTF-8</fileEncoding> </template> </templates> </configuration>模板中可用的变量和方法String tagertProject 目标工程路径(代码保存的基准路径)String basePackage 基准包String moduleName 模块名table对象属性String tableName 表名String tableType 表类型String tableAlias 表别名String remarks 表注释String remarksUnicode 表注释转Unicode后的字符串String className 实体类名String javaProperty 实体类作为属性时的名字 == ${table.className?uncap_first}List<Column> primaryKeys 主键集List<Column> baseColumns 基本字段集List<Column> columns 所有字段 == primaryKeys + baseColumnsList<Key> importedKeys 所有 importedKeysList<Key> exportedKeys 所有 exportedKeysboolean hasDateColumn 是否有日期类型字段boolean hasBigDecimalColumn 是否有 BigDecimal 字段boolean hasNotNullColumn 是否有非空的基本类型字段boolean hasNotBlankColumn 是否有非空的 String 字段Column属性String columnName 字段名boolean primaryKey 是否为主键boolean foreignKey 是否为外键int size 字段长度int decimalDigits 小数位长度boolean nullable 是否可空boolean unique 是否唯一值boolean indexed 是否有索引String defaultValue 默认值String remarks 注释String remarksUnicode 数字转Unicode后的字符串int jdbcType 对应 java.sql.TypesString jdbcTypeName 对应jdbcType的名称String javaProperty 属性名String javaType java类型,比如StringString fullJavaType 完整的Java类型,比如 java.lang.StringString getterMethodName Get方法名String setterMethodName Set方法名方法boolean isString() 是否是字符串boolean isFloatNumber() 是否是浮点型,含Float、Double、BigDecimalboolean isIntegerNumber() 是否是整型,含Byte、Short、Integer、Longboolean isBigDecimal() 是否是BigDecimal类型boolean isBoolean() 是否是布尔类型boolean isDate() 是否有日期类型,含Date、Timestamp、Timeboolean isBLOB() 是否有 BLOB、CLOB、LONGVARCHAR、LONGVARBINARY或VARBINARYKeyString pkTableName PKTABLE_NAMEString pkColumnName PKCOLUMN_NAMEString fkTableName FKTABLE_NAMEString fkColumnName FKCOLUMN_NAMEInteger seq KEY_SEQ
评论