badqiu

          XPer
          隨筆 - 46, 文章 - 3, 評(píng)論 - 195, 引用 - 0
          數(shù)據(jù)加載中……

          [rapid-framework]代碼生成器發(fā)布:rapid-generator-v1.0

          通常代碼生成器存在的問(wèn)題.

          • 二次開(kāi)發(fā)困難
          • 過(guò)于智能,自動(dòng)插入我們的項(xiàng)目中,程序員還需考慮舊的代碼會(huì)不會(huì)被覆蓋的問(wèn)題
          • 沒(méi)有將存放模板的目錄名稱及文件名稱利用起來(lái),導(dǎo)致還需配置每個(gè)模板文件生成的文件名,目錄結(jié)構(gòu)
            具體請(qǐng)查看我寫的文章:為何代碼生成器都要這么智能呢?

          本代碼生成器的特性

          • 1. 基于FreeMarker模板語(yǔ)言
          • 2. 基于數(shù)據(jù)庫(kù),并支持多種數(shù)據(jù)庫(kù)(mysql,sql server,oracle測(cè)試通過(guò))
          • 3. 半手工方式,生成的代碼放在某個(gè)目錄,再手工拷貝回來(lái)工作區(qū)
          • 4. 易于做二次開(kāi)發(fā),整個(gè)生成器本身就是java源代碼,源代碼核心十分精簡(jiǎn),并且鼓勵(lì)你做修改代碼,也可以作為任何語(yǔ)言的代碼生成器
          • 5. 配置簡(jiǎn)單,只有一個(gè)配置文件generator.properties
          • 6. 以application方式運(yùn)行生成器,生成不同的table直接修改相關(guān)java代碼即可
          • 7. 將文件系統(tǒng)的目錄名稱及文件名稱作為生成器的一部分,模板文件的的名稱與目錄名稱可以直接引用相關(guān)變量,如 ${basepackage}/${className}.java? (${className}=Blog,則會(huì)生成Blog.java)
          • 8. 以@testExpression結(jié)尾的模板文件為有條件忽略,如果testExpression的值在數(shù)據(jù)模型為true則生成該文件,生成的文件不會(huì)包含@testExpression,反之則不生成該文件(應(yīng)用場(chǎng)景:用于在是否要生成hibernate聯(lián)合主建的文件中)
          • 9. 支持文件插入操作,如模板輸出生成的地方已經(jīng)有該同名的文件存在,并且文件中有包含"webapp-generator-insert-location"標(biāo)記,則模板生成的內(nèi)容會(huì)插入在該標(biāo)記之后.該特性對(duì)如生成的spring配置內(nèi)容插入spring配置文件十分有用

          代碼生成器的運(yùn)行

          • 修改generator.properties的數(shù)據(jù)庫(kù)連接屬性及其它屬性
          • 將generator_lib中的jar加入classpath,generator_lib自帶了幾種驅(qū)動(dòng)
          • 以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)

          代碼模板目錄

          ?

          ?

          項(xiàng)目下載: http://code.google.com/p/rapid-generator/downloads/list


          本生成器也將作為rapid-framework的一部分,即將發(fā)布,敬請(qǐng)關(guān)注.

          ?

          并且歡迎大家加入討論組:

          posted on 2008-07-22 09:09 badqiu 閱讀(2475) 評(píng)論(7)  編輯  收藏

          評(píng)論

          # re: [rapid-framework]代碼生成器發(fā)布:rapid-generator-v1.0  回復(fù)  更多評(píng)論   

          用fmpp吧,比你的強(qiáng)大多了
          2008-07-22 11:48 | xfan

          # re: [rapid-framework]代碼生成器發(fā)布:rapid-generator-v1.0  回復(fù)  更多評(píng)論   

          @xfan
          兩者的目的不同,這個(gè)就是可以實(shí)際應(yīng)用于開(kāi)發(fā)使用的生成器.
          數(shù)據(jù)模型等都已經(jīng)為你構(gòu)建好,只要根據(jù)你的系統(tǒng),修改內(nèi)置的模板就行了.
          2008-07-22 12:44 | badqiu

          # re: [rapid-framework]代碼生成器發(fā)布:rapid-generator-v1.0  回復(fù)  更多評(píng)論   

          看來(lái)是挺好的東東,下載回來(lái)看看
          2008-07-22 15:12 | nickey

          # re: [rapid-framework]代碼生成器發(fā)布:rapid-generator-v1.0  回復(fù)  更多評(píng)論   

          能否制作一個(gè)基于struts2的web項(xiàng)目呢?下午試了一下 感覺(jué)很好用的
          確實(shí)非常方便的好東西 可是我比較習(xí)慣用struts2 樓主的視頻教程是基于struts1的 希望樓主百忙之中能否制作一個(gè)基于struts2的web項(xiàng)目 小弟感激不盡!82149317@qq.com 我的郵箱
          2008-10-31 16:44 | 孫彬彬

          # re: [rapid-framework]代碼生成器發(fā)布:rapid-generator-v1.0  回復(fù)  更多評(píng)論   

          請(qǐng)教下:為什么rapid-framework項(xiàng)目改成struts2之后 不能修改后綴了?難道后綴只能是 .action嗎?
          2008-10-31 19:03 | 孫彬彬

          # 配置[未登錄](méi)  回復(fù)  更多評(píng)論   

          如何在generator.properties中配置oracle數(shù)據(jù)庫(kù)啊
          2009-05-11 14:40 | 莉莉

          # re: [rapid-framework]代碼生成器發(fā)布:rapid-generator-v1.0  回復(fù)  更多評(píng)論   

          @莉莉
          普通的數(shù)據(jù)庫(kù)將jdbc.url等配好就行了。
          只有oracle還要配一下jdbc.schema,并且oracle數(shù)據(jù)庫(kù)在運(yùn)行GeneratorMain時(shí)要注意表名有大小寫。
          2009-05-27 09:52 | badqiu

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 天气| 大连市| 海兴县| 清苑县| 嘉禾县| 昭觉县| 精河县| 彰化市| 中西区| 天峻县| 涪陵区| 宝清县| 河曲县| 淳化县| 沂南县| 于田县| 南城县| 五河县| 乌恰县| 磴口县| 安顺市| 舒兰市| 衡南县| 永德县| 新河县| 滨州市| 长葛市| 尚义县| 龙胜| 延吉市| 诸城市| 临高县| 石河子市| 科技| 且末县| 肇庆市| 莲花县| 津南区| 长武县| 郓城县| 勃利县|