夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          這一節, 我們根據數據庫生成PO對象為例, 來探討如何使用PP制作freemarker模板, 創建解決方案. 工料:
          1. eclipse jee, 最好是安裝freemarker插件, 可以高亮顯示freemarker標簽.
          2. 可用的數據庫, 可以是mysql, oracle, db2, postgresql中的任意一種. 如果沒有數據庫, 使用pp_home中的sample/sample-mysql.xlsx也是可以的.
          * PP支持兩種數據源, 一種是數據庫, 另一種是excel文件數據源. 為什么支持excel呢? 是源于我曾經在建行工作, 內部數據庫權限管理極為嚴格. 以至于PP需要查表字段信息的sql無權訪問oracle的user_tab_columns等表, 這種情況下, 可以把表信息錄入到excel, 繼續使用PP來生成代碼.
          制作freemarker文件模板
          再次提示, 點擊PP的”工具”->”輔助設計” 菜單可以打開”輔助設計面板”, 需要的變量都可以到里面復制, 然后粘貼到freemarker中.
          以下是我在eclipse里寫的freemarker文件po.flt
           <#-- 生成package信息 --> <#if p.poPackageName??>package ${p.poPackageName};</#if> <#-- 生成import信息 --> <#list g.entityImportClassSet as clazz> import ${clazz}; </#list> /** *Description: ${g.tableComment}[${g.tableName}]管理接口實現類 <br/> *Create info: ${c.author}, ${g.createTime?string("yyyy/MM/dd")} <br/> *Copyright (c) ${g.createTime?string("yyyy")}, ${c.contact} All Rights Reserved. <br/> * *@Version 1.0 */ public class ${g.entityCap}Po { <#-- 生成主鍵字段信息 --> <#list g.fieldLst as f> private ${f.javaTypeShort} ${f.property}; <#if f.columnComment??>// ${f.columnComment}<#if f.isPk>,主鍵</#if><#if !f.isNullAble>,不能為空</#if></#if> </#list> <#-- 生成不帶參數的構造方法 --> /** *不帶參數的構造方法 */ public ${g.entityCap}Po(){} <#-- 生成以主鍵為參數的構造方法 --> /** *主鍵作為參數的構造方法 *@param ${g.pkField.property} <#if g.pkField.columnComment??>${g.pkField.columnComment}</#if> */ public ${g.entityCap}Po(${g.pkField.javaTypeShort} ${g.pkField.property}){ this.${g.pkField.property} = ${g.pkField.property}; } <#-- 生成主鍵set/get方法 --> <#list g.fieldLst as f> /** *Getter <#if f.columnComment??>${f.columnComment}</#if><#if f.isPk>,主鍵</#if><#if !f.isNullAble>,不能為空</#if> *@return */ public ${f.javaTypeShort} get${f.propertyCap}(){ return this.${f.property}; } /** *Setter <#if f.columnComment??>${f.columnComment}</#if><#if f.isPk>,主鍵</#if><#if !f.isNullAble>,不能為空</#if> *@param ${f.property} */ public void set${f.propertyCap}(${f.javaTypeShort} ${f.property}){ this.${f.property} = ${f.property}; } </#list> } 
          在eclipse里編輯好這個文件后, 在pp_home/config/templates里創建myscheme文件夾, 然后把po.flt復制到這個文件夾中. 到這步為止, 我們模板就制作完了.
          下面我們開始創建解決方案

          打開PP后, 請按如下步驟操作,

          1. 點擊”可寫”按鈕, 使這個標簽頁上的控件呈可編輯狀態
          2. 在”解析方案”可編輯下拉框中填寫”myscheme”
          3. 在”域名”文件框里填入”com.hwp.pro”, 這里是您的項目的包前綴, 鼠標在上面停留, 可以看到提示, 可以通過${domain}在freemarker中引用它的值.
          4. 在”模塊”里輸入”pub”, 我們要生成文件的模塊名, 鼠標在上面停留, 可以看到相應的提示
          5. “基本URL”不用填寫, 生成controller, html時才可能會用到
          6. 在”基本路徑”里輸入”/Uers/hui/Documents/myspace/workspaces1/workspacepp/generator-test/src/main” 這是我們項目文件的路徑, 最終生成文件的保存路徑會和它有關系. 具體關系是生成的文件的最終保存路徑是 “基本路徑” + “包名”的路徑.
          7. 點擊”添加或修改”, 此時, 解決方案就保存好了.
          下面我們開始為”解決方案” 添加 “生成任務”, 請按如下步驟操作:

          選中剛才的創建的解決方案, 點擊”任務列表” 下面的 “添加”, 在彈出界面中輸入如下信息這里寫圖片描述
          ##### 在這個面板中作以下幾點說明: 
          1. 模板路徑${templatesPath}會被pp_home//comfig//templates替換. 
          2. 存放路徑最終的結果是前面的”基本路徑” + “Java” +”包名(轉化成路徑)” 
          3. 包名后面的文本框的值, 是包名的別名, 在freemarker文件中可以通過${p.poPackageName}去引用

          這進下任務列表里已經有了這個任務, 如圖: 
          這里寫圖片描述

          上面的這些信息, 會保存在PP的sqlite數據庫, 以備下次使用.
          下面一篇博客, 我們探討, 如何用解決方案來結合數據庫表來生成文件


          posted on 2017-09-01 20:19 HUIKK 閱讀(377) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 金山区| 循化| 南昌市| 合肥市| 旌德县| 寿阳县| 横峰县| 晋州市| 滨海县| 巴中市| 西安市| 大同县| 滕州市| 扶沟县| 安乡县| 英山县| 溆浦县| 阳西县| 华蓥市| 云安县| 四会市| 隆回县| 通许县| 安吉县| 疏勒县| 渝中区| 章丘市| 河北省| 小金县| 朝阳县| 锦屏县| 杨浦区| 甘泉县| 石楼县| 花垣县| 梅河口市| 望城县| 富平县| 固安县| 开原市| 公安县|