JAVA编码(64)—— 代码生成工具(rapid-framework)

时间:2024-02-21 22:30:22

参考:https://blog.csdn.net/u013474104/article/details/78547017

其它:http://blog.csdn.net/xgc007/article/details/52997723

https://code.google.com/archive/p/rapid-framework/

官方网站(好像不能访问):http://www.rapid-framework.org.cn/

web项目脚手架

rapid-framework是一个以spring为核心的项目脚手架(或者称为胶水框架),框架将各个零散的框架(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)搭建好,并内置一个代码生成器,辅助项目开发,可以生成java的hibernat model,dao,manager,struts+struts2 action类,可以生成jsp的增删改查及列表页面

项目定位

本框架是类似appfuse,springside的框架,但定位与springside及appfuse不同,它们更像是一些代码的最佳实践,而rapid-framework则是应用于实际项目开发的脚手架, 并且代码也将优化至极致.使用脚手架3分钟即可以搭建出一个实际项目.

框架概览

  • Dao: spring_jdbc, hibernate, ibatis2, ibatis3, 可以切换dao组件
  • Dao Helper: 基于dialect的分页(ibatis2, ibatis3, jdbc),动态sql构造工具rapid-xsqlbuilder
  • Web MVC: struts1, struts2, springmvc, springmvc_rest, 可以切换web组件
  • Template: (velocity, freemarker, jsp)的模板可以相互继承, velocity及freemarker可以实现模板之间的管道操作
  • 分页组件: extremeTable, rapid-simpletable
  • UI: rapid-validation表单验证, My97DatePicker日期控件
  • 单元测试: spring test+DBunit
  • 底层支撑: 插件体系及代码生成器(rapid-generator)

项目质量
- 完整的单元测试及持续集成,保证代码质量

Maven

如果你是maven用户,现在可以直接在maven官方仓库中引用到rapid的类库


<!-- rapid核心框架 --> <dependency> <groupId>com.googlecode.rapid-framework</groupId> <artifactId>rapid-core</artifactId> <version>4.0</version> 
</dependency>

rapid-generator ``` com.googlecode.rapid-framework rapid-generator 4.0 
com.googlecode.rapid-framework rapid-generator-ext 4.0 
com.googlecode.rapid-framework rapid-generator-template 4.0 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

“`

下载

https://code.google.com/archive/p/rapid-framework/downloads

陈科肇

下载这里,有不的版本和许多使用demo

使用

首先我们把那个离线文档下载下来,rapid-framework-document-v3.0.zip

或者下载版本后,里面也会自带一个该版本的文档

rapid-framework-3.9.3.20100923\reference_doc

rapid-framework的主要文件目录:
陈科肇

待续…

其它

不折腾了,我已经有现成的了,都已经配置好
直接关联数据库表生成代码模板

陈科肇

陈科肇

需要的这里下载
百度云盘:http://pan.baidu.com/s/1c1T7HHQ 密码:uyzw

变量引用

file:///C:/Users/aaron/Desktop/11/rapid-framework-3.9.3.20100923/reference_doc/rapid_generator.html

generateByClass()gg控制变量

rapid_generator_gg
One-sentence summary of this page.
生成器模板 GG 控制变量
gg变量可以让每一个模板自己控制一些事情,如输出目录,输出encoding,或者还可以通过gg变量生成其它文件.

示例使用
${gg.setIgnoreOutput(true)}

相关控制方法,示例使用:${gg.setIgnoreOutput(true)}

  • boolean ignoreOutput : 不生成输出文件
  • String outputFile :
  • String outputFiles : 同时生成几份拷贝在在几个地方
  • String sourceEncoding : 指定模板文件的编码
  • String outputEncoding : 控制模板生成的文件编码
  • boolean isOverride : 是否覆盖目标文件,如果存在,默认true
  • String outRoot : 设置输出文件的根目录

相关只读属性,示例使用:${gg.getSourceDir()}

  • String sourceFile; 模板源文件file
  • String sourceDir; 模板源文件所在的目录
  • String sourceFileName; 模板源文件名

生成其它文件
${gg.generateFile(outputFile,content,encoding)}

装载其它资源
${gg.loadXml(xmlFile,ignoreError)}

得到property配置

  • ${gg.getProperty(key,defaultValue)}: 得到proproty,如果没有找到,则返回默认值
  • ${gg.getInputProperty(key,message)}: 会弹出一个输入框,提示用户输入值,提示消息为message.
  • ${gg.getInputProperty(key)}: 会弹出一个输入框,提示用户输入值,提示消息为please input value for key.

GG
GeneratorControl.java参考,请使用IE查看

Table.java 参考, rapid_generator_table_model_ref

Table.java 参考,引用变量名为:table
Table对象为对应的数据库表:

属性描述示例值
sqlName 数据库的列名称,很多其它值都是通过此列派生 USER_INFO
className 通过sqlName生成的类名称 UserInfo
classNameFirstLower 类名称第一个字母小写 userInfo
classNameLowerCase className并全部小写 userinfo
underscoreName 下划线类名称 user_info
columns 数据库全部column 请查阅Column.java
remarks 数据库的注释 null
notPkColumns 非主键的column对象  
pkCount 主键数 1
singleId pkCount = 1时为true true
compositeId pkCount >= 2时为true false
idColumn 表的主键 USER_ID(已经废弃)
pkColumns 所有的主键列,column对象  
compositeIdColumns 等价于pkColumns,该属性已经过时  
tableAlias 表的别名,值为 remarks == null ? className : remarks UserInfo
notCompositeId pkCount < 2 时为true true
primaryKeyColumns 所有主键列  
ownerSynonymName    
constantName 常量名,等于sqlName.toUpperCase() USER_INFO
importedKeys    
exportedKeys    

Column.java 参考

Column为数据库表(table)对应的列:

属性描述示例值
sqlName 数据库原生列名 USER_ID
sqlTypeName 数据库原生列类型 BIGINT
sqlType 数据库原生列类型 -5
defaultValue 数据库原生默认值 null
remarks 数据库原生番注 用户ID
columnName 将sqlName删除下划线,并首字母大写 UserId
underscoreName 下划列名称 user_id
columnNameLower 已经过时,使用columNameFirstLower替代 userId
columnNameFirstLower columnName的第一个字母小写 userId
columnNameLowerCase 等于columnName.toLowerCase() userid
columnAlias 列的别名,值为 remarks == null ? columnName: remarks userId
constantName 常量名称,等于sqlName.toUpperCase() USER_ID
validateString 用于rapid-validation的验证表达式 required validate-integer
noRequiredValidateString 用于rapid-validation的验证表达式 validate-integer
decimalDigits   0
indexed 是否索引列 true
nullable 是否允许为空 false
unique 是否唯一 true
fk 是否外键 false
pk 是否主键 true
isNumberColumn 是否是number类型的列 true
isStringColumn 是否是String类型的列 false
isDateTimeColumn 是否是日期类型的列 false
isNotIdOrVersionField 不是主键并且不等于version时为true false
htmlHidden 是否需要html隐藏 true
jdbcSqlTypeName 数据库列类型 BIGINT
testData 该列生成的测试数据 173
size   64
javaType 与列相对应的java类型 java.lang.Long
asType 与列相对应的ActionScript类型 Number
table 列相对应的table对象  

模板引擎freemarker

语法参考: http://freemarker.sourceforge.net/docs/index.html

模板语言参考

https://freemarker.apache.org/docs/ref.html