1.简介
rapid-generator是一个由JAVA编写的,通过数据库元数据和模板框架freemarker自动生成代码的一个开源框架。
2.实现
pom.xml
<dependency> <groupId>com.googlecode.rapid-framework</groupId> <artifactId>rapid-generator</artifactId> <version>4.0.6</version> </dependency>
generator.xml
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <!-- 系统配置,详见GeneratorConstants.java --> <!-- 自动生成代码的输出路径 --> <entry key="outRoot">F:/CodeGenerator/codes</entry> <entry key="jdbc_driver">com.mysql.jdbc.Driver</entry> <entry key="jdbc_url">XXX</entry> <entry key="jdbc_username">root</entry> <entry key="jdbc_password">123456</entry> <!-- 需要移除的表名前缀,使用, \t\n\r\f进行分隔多个前缀,示例值: t_,v_ --> <entry key="tableRemovePrefixes">t_</entry> <!-- 列类型和JavaType的对应关系 --> <!-- DatabaseDataTypesUtils --> <!-- 自定义列类型和JavaType的对应关系 --> <!-- Column.initOtherProperties --> <entry key="java_typemapping.java.lang.Byte">byte</entry> <entry key="java_typemapping.java.lang.Short">short</entry> <entry key="java_typemapping.java.lang.Integer">int</entry> <entry key="java_typemapping.java.lang.Long">long</entry> <entry key="java_typemapping.java.lang.Float">float</entry> <entry key="java_typemapping.java.lang.Double">double</entry> <entry key="java_typemapping.java.lang.Boolean">boolean</entry> <entry key="java_typemapping.java.lang.String">String</entry> <entry key="java_typemapping.java.sql.Date">Date</entry> <entry key="java_typemapping.java.sql.Time">Date</entry> <entry key="java_typemapping.java.sql.Timestamp">Date</entry> <!-- 自定义变量 --> <!-- 可添加自定义的变量,在模板文件中引用 --> <entry key="basepackage">XXX</entry> </properties>
SimpleTest.java
package com.siyuan.study.codegenerator; import cn.org.rapid_framework.generator.GeneratorFacade; public class SimpleTest { public static void main(String[] args) throws Exception { GeneratorFacade g = new GeneratorFacade(); g.deleteOutRootDir(); g.getGenerator().setTemplateRootDir("F:/CodeGenerator/template"); g.generateByTable("t_activity"); } }
${className}.java
<#assign className = table.className> <#assign classNameLower = className?uncap_first> package ${basepackage}.model; <#list table.columns as column> <#if column.javaType == "Date"> import java.util.Date; <#break> </#if> </#list> public class ${className} { <#list table.columns as column> private ${column.javaType} ${column.columnName?uncap_first}; </#list> public ${className}(){ } <#list table.columns as column> public ${column.javaType} get${column.columnName?cap_first}() { return this.${column.columnName?uncap_first}; } public void set${column.columnName?cap_first}(${column.javaType} ${column.columnName?uncap_first}) { this.${column.columnName?uncap_first} = ${column.columnName?uncap_first}; } </#list> }
扫描二维码关注公众号,回复:
486894 查看本文章