代码生成工具 rapid-framework

工具篇 专栏收录该内容
31 篇文章 0 订阅

其它: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 

“`

下载

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
classNameLowerCaseclassName并全部小写userinfo
underscoreName下划线类名称user_info
columns数据库全部column请查阅Column.java
remarks数据库的注释null
notPkColumns非主键的column对象
pkCount主键数1
singleIdpkCount = 1时为truetrue
compositeIdpkCount >= 2时为truefalse
idColumn表的主键USER_ID(已经废弃)
pkColumns所有的主键列,column对象
compositeIdColumns等价于pkColumns,该属性已经过时
tableAlias表的别名,值为 remarks == null ? className : remarksUserInfo
notCompositeIdpkCount < 2 时为truetrue
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
columnNameFirstLowercolumnName的第一个字母小写userId
columnNameLowerCase等于columnName.toLowerCase()userid
columnAlias列的别名,值为 remarks == null ? columnName: remarksuserId
constantName常量名称,等于sqlName.toUpperCase()USER_ID
validateString用于rapid-validation的验证表达式required validate-integer
noRequiredValidateString用于rapid-validation的验证表达式validate-integer
decimalDigits0
indexed是否索引列true
nullable是否允许为空false
unique是否唯一true
fk是否外键false
pk是否主键true
isNumberColumn是否是number类型的列true
isStringColumn是否是String类型的列false
isDateTimeColumn是否是日期类型的列false
isNotIdOrVersionField不是主键并且不等于version时为truefalse
htmlHidden是否需要html隐藏true
jdbcSqlTypeName数据库列类型BIGINT
testData该列生成的测试数据173
size64
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

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值