代碼生成工具 rapid-framework

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

發佈了229 篇原創文章 · 獲贊 148 · 訪問量 91萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章