【SQL开源代码栏目提醒】:网学会员,鉴于大家对SQL开源代码十分关注,论文会员在此为大家搜集整理了“rapid-generator-v3.9代码生成器 - 软件工程”一文,供大家参考学习!
核 心理念 通 常代码生成器存在的问题. 特 性 生 成器的运行 o 在 eclipse 中运行 o 独 立版运行 生 成器讲解 o 生 成器模板路径可以引用相关变量 o 自 动搜索某个目录所有模板文件无需配置 o 代 码生成器模板可以引用的相关变量 o 每 个模板有 gg 变量可以控制自身的自定义配置 每一个模板都 会创建新的 gg 实例 o 支 持生成gen及删除操作del即生成的代码也可以很方便的 删除 o 自 动拷贝二进制文件至输出目录 o 自 动删除模板扩展名:.ftl.vm o 模 板自动 include 同级目录:macro.include 文件 o generator.xml 或者 generator.properties配置文件 o 十. 数据库表配置用于自定义生成器模板引用的 table 变量 o 生 成的代码插入文档的某个部位 创 建一个模板 o 代 码 template 目录结构 o 创 建一个生成器模板文件 参 考 o generateByTable o generateBySql o generateByClass o GG 控制变量参考 o table 变量参考 o column 变量参考 o sql 变量参考 o 模 板引擎 freemarker核心理念为你生成一切再根据所需手工 copy 回工作区通常代码生成器存在的问题. 二次开发困难没有源码可以修改模板文件的 model 对象等 过 于智能自动插入我们的项目中程序员还需考虑旧的代码会不会被覆 盖的问题 生成文件的时候让你选要生成那些文件而 rapid 只负 责生成代码,这样 生成器核心一分精简 没有将存放模板的目录名称及文件名称利用起来导致还需配置每个模板 文件生成的文件名目录结 构 具体请查看我写的文章:为何代码生成器都要这么智能呢特性 基于 FreeMarker 模板语言并且模板易于修改 基 于数据库内建好数据库的 model并支持多种数据库mysqlsql serveroracle 测试通过 半手工方式 生成的代码放在某个目录再手工拷贝回来工作区 易于做二次开发整个生成器本身就是 java 源代码源代码核心十分精简 并且鼓励 你修改代码也可以作为任何语言的代码生成器 配置简单只有一个配置文件 generator.properties生成器的运行在 eclipse 中运行 1. 配置 classpath将 generator/lib 中的 rapid-generator.jar 及其它数 据库驱动加入 classpath 2. 修改 generator.xml 的数据库连接属性及 其它属性 3. 以 application 的方式运行 GeneratorMain 类要生成不同的 table直接 修改代码即可 public class GeneratoMain public static void mainString args throws Exception GeneratorFacade g new GeneratorFacade g.deleteOutRootDir //删除生成器的输出目录 // g.generateByTabletable_nametemplate //通过数据库表生成文件template 为模板的根目录 g.generateByAllTabletemplate //自动搜索数据 库中的所有表并生成文件template 为模板的根目录 // g.generateByClassBlog.classtemplate_clazz // g.deleteByTabletable_name template //删 除生成的文件 4. 以 application 方式运行 cn.org.rapid_framework.generator.ext.CommandLine独立版运行下载 standandalone-rapid- generator.zip解压并运行 rapid-gen.bat独立版下载地址生成器讲解生成器模板路径可 以引用相关变量示例:dao/basepackage_dir /className.java根据该变量生成输出文件如果 basepackage_dir com/company/rapid classNameUserInfo那么完整路径则为:dao/com/company/rapid/UserInfo.java自动搜索某个目录所有模板文件无需配置代码生成器模板 可以引用的相关变量 1. g.generateByTabletable_name 方法可以引用的变量 table :cn.org.rapid_framework.generator.provider.db.table.model.Table 2. g.generateByClassclass 方法可以引用的变量 clazz :cn.org.rapid_framework.generator.provider.java.model.JavaClass 3. g.generateBySqlSql 方法可以引用的变量 sql :cn.org.rapid_framework.generator.provider.db.sql.model.Sql 4.公共变量 env : 系统环境变量 System.getProperties : 直接引用没有前缀 generator.properties 文件中的所有属性直接引用没有前缀 gg : 模板控制变量cn.org.rapid_framework.generator.GeneratorControl每个模板有 gg 变量可以控制自身的自定义配置 每一个模板都会创建新的 gg 实例如是否生成是否覆盖目标文件甚至是生成其它文件 示例:gg.setIgnoreOutputtrue 参考: rapid_generator_gg支持生成gen及删除操作 del即生成的代码也可以很方便的删除自动拷贝二进制文件 至输出目录如模板目录下的 ziprardoc 文件将会自动拷贝至输出目录不会破坏文件格式 通过扩展名自动识别自动删除模板扩展名:.ftl.vm举例: 如你有一个模板 SqlMap.xml.ftl 将变为 SqlMap.xml 所以你要生成ftl 扩展名的文件应该将文件名从 list.ftl list.ftl.ftl模板自动 include 同级目录:macro.include 文件示例: 如你的模板为 java_src/com/project/UserDao.java 将自动 include:java_src/com/project/macro.include 及 根目录的 macro.includegenerator.xml 或者 generator.properties配置文件 1. 类似 ant 可以变量引用引用环境变量使 用env.JAVA_HOME 引用 System.getProperties直接引用2. 自动替换 generator.properties 中的句号.为反斜杠设置 key 为keydir后缀示例: pkgcom.company pkg_dircom/company十. 数据库表配置用于自定义生成器模板引用的table 变量配置文件必须存放在 classpath: generator_config/table/table_name.xml该文件生成器可以生成,自己再自定义修改生成的代码插入文档的某个部位如模板输出生成的地方已经有该 同名的文件 存在并且该文件中有包含generator-insert-location标记则模板生成的内容会插入在该标记之后.该特性对如生成的 spring 配置内容插入 spring 配置文件十分有用创建一个模板代码 template 目录结构如上所示,目录及文件名称可以引用相关变量。