<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢(mèng)幻之旅

    DEBUG - 天道酬勤

       :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評(píng)論 :: 0 Trackbacks
    這一節(jié), 我們根據(jù)數(shù)據(jù)庫(kù)生成PO對(duì)象為例, 來(lái)探討如何使用PP制作freemarker模板, 創(chuàng)建解決方案. 工料:
    1. eclipse jee, 最好是安裝freemarker插件, 可以高亮顯示freemarker標(biāo)簽.
    2. 可用的數(shù)據(jù)庫(kù), 可以是mysql, oracle, db2, postgresql中的任意一種. 如果沒(méi)有數(shù)據(jù)庫(kù), 使用pp_home中的sample/sample-mysql.xlsx也是可以的.
    * PP支持兩種數(shù)據(jù)源, 一種是數(shù)據(jù)庫(kù), 另一種是excel文件數(shù)據(jù)源. 為什么支持excel呢? 是源于我曾經(jīng)在建行工作, 內(nèi)部數(shù)據(jù)庫(kù)權(quán)限管理極為嚴(yán)格. 以至于PP需要查表字段信息的sql無(wú)權(quán)訪問(wèn)oracle的user_tab_columns等表, 這種情況下, 可以把表信息錄入到excel, 繼續(xù)使用PP來(lái)生成代碼.
    制作freemarker文件模板
    再次提示, 點(diǎn)擊PP的”工具”->”輔助設(shè)計(jì)” 菜單可以打開(kāi)”輔助設(shè)計(jì)面板”, 需要的變量都可以到里面復(fù)制, 然后粘貼到freemarker中.
    以下是我在eclipse里寫(xiě)的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}]管理接口實(shí)現(xiàn)類 <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> <#-- 生成不帶參數(shù)的構(gòu)造方法 --> /** *不帶參數(shù)的構(gòu)造方法 */ public ${g.entityCap}Po(){} <#-- 生成以主鍵為參數(shù)的構(gòu)造方法 --> /** *主鍵作為參數(shù)的構(gòu)造方法 *@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里編輯好這個(gè)文件后, 在pp_home/config/templates里創(chuàng)建myscheme文件夾, 然后把po.flt復(fù)制到這個(gè)文件夾中. 到這步為止, 我們模板就制作完了.
    下面我們開(kāi)始創(chuàng)建解決方案

    打開(kāi)PP后, 請(qǐng)按如下步驟操作,

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

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

    這進(jìn)下任務(wù)列表里已經(jīng)有了這個(gè)任務(wù), 如圖: 
    這里寫(xiě)圖片描述

    上面的這些信息, 會(huì)保存在PP的sqlite數(shù)據(jù)庫(kù), 以備下次使用.
    下面一篇博客, 我們探討, 如何用解決方案來(lái)結(jié)合數(shù)據(jù)庫(kù)表來(lái)生成文件


    posted on 2017-09-01 20:19 HUIKK 閱讀(379) 評(píng)論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: www视频在线观看免费| 国产亚洲情侣一区二区无码AV | 国产亚洲欧美在线观看| 国产精品久久久久免费a∨| 亚洲资源在线视频| 亚洲毛片免费观看| 亚洲av片不卡无码久久| 国产情侣激情在线视频免费看| 亚洲国产精品国产自在在线| 免费看一级高潮毛片| 亚洲国产成人精品女人久久久| 全部在线播放免费毛片| 亚洲精品无码专区久久同性男| 成人妇女免费播放久久久| 午夜免费福利在线观看| 久久精品亚洲精品国产色婷| 黄色短视频免费看| 亚洲AV午夜成人片| 在线免费视频你懂的| 亚洲视频免费在线观看| 黄页网站在线看免费| 亚洲日本VA午夜在线电影| 免费观看国产精品| 亚洲av日韩av永久无码电影| 久久成人国产精品免费软件| 亚洲av无码片在线观看| 破了亲妺妺的处免费视频国产| 永久免费精品影视网站| 久久久久亚洲精品无码系列| 中文字幕无码日韩专区免费 | 亚洲国产精品嫩草影院在线观看| 日本黄页网址在线看免费不卡| 国产精品亚洲精品日韩已方| 一个人免费日韩不卡视频| 亚洲一本一道一区二区三区| 亚洲AV伊人久久青青草原| 久久青草91免费观看| 毛片亚洲AV无码精品国产午夜| 久久精品亚洲日本佐佐木明希| 成年女人免费视频播放77777| 亚洲一区二区三区久久|