参考: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