[rapid-framework]代碼生成器發(fā)布:rapid-generator-v1.0
通常代碼生成器存在的問題.
- 二次開發(fā)困難
- 過于智能,自動插入我們的項目中,程序員還需考慮舊的代碼會不會被覆蓋的問題
- 沒有將存放模板的目錄名稱及文件名稱利用起來,導(dǎo)致還需配置每個模板文件生成的文件名,目錄結(jié)構(gòu)
具體請查看我寫的文章:為何代碼生成器都要這么智能呢?
本代碼生成器的特性
- 1. 基于FreeMarker
模板語言
- 2. 基于數(shù)據(jù)庫,并支持多種數(shù)據(jù)庫(mysql,sql server,oracle測試通過)
- 3. 半手工方式,生成的代碼放在某個目錄,再手工拷貝回來工作區(qū)
- 4. 易于做二次開發(fā),整個生成器本身就是java源代碼,源代碼核心十分精簡,并且鼓勵你做修改代碼,也可以作為任何語言的代碼生成器
- 5. 配置簡單,只有一個配置文件generator.properties
- 6. 以application方式運(yùn)行生成器,生成不同的table直接修改相關(guān)java代碼即可
- 7. 將文件系統(tǒng)的目錄名稱及文件名稱作為生成器的一部分,模板文件的的名稱與目錄名稱可以直接引用相關(guān)變量,如 ${basepackage}/${className}.java? (${className}=Blog,則會生成Blog.java)
- 8. 以@testExpression結(jié)尾的模板文件為有條件忽略,如果testExpression的值在數(shù)據(jù)模型為true則生成該文件,生成的文件不會包含@testExpression,反之則不生成該文件(應(yīng)用場景:用于在是否要生成hibernate聯(lián)合主建的文件中)
- 9. 支持文件插入操作,如模板輸出生成的地方已經(jīng)有該同名的文件存在,并且文件中有包含"webapp-generator-insert-location"標(biāo)記,則模板生成的內(nèi)容會插入在該標(biāo)記之后.該特性對如生成的spring配置內(nèi)容插入spring配置文件十分有用
代碼生成器的運(yùn)行
- 修改generator.properties的數(shù)據(jù)庫連接屬性及其它屬性
- 將generator_lib中的jar加入classpath,generator_lib自帶了幾種驅(qū)動
- 以application的方式運(yùn)行GeneratorMain類,要生成不同的table,直接修改代碼即可
1?public?class?GeneratorMain?{???
2?????public?static?void?main(String[]?args)?throws?Exception?{???
3?????????Generator?g?=?new?Generator();???
4????????????
5?????????g.clean();???
6?????????g.generateTable("blog");???
7?//??????g.generateAllTable();???
8?????}???
9?}??
代碼template目錄結(jié)構(gòu)
?
?
項目下載: http://code.google.com/p/rapid-generator/downloads/list
本生成器也將作為rapid-framework的一部分,即將發(fā)布,敬請關(guān)注.
?