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

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

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

    向左走,向右走
    不斷追求進(jìn)步
    posts - 24,comments - 23,trackbacks - 0

    剛剛參加完公司的i.frame的培訓(xùn),現(xiàn)在總結(jié)一下

    1. web.xml 文件中并沒有太多的變化,注意一下要配置多個(gè)struts-config-***.xml
    2. i.frame 比struts多了command-config-***.xml,是以plugin的方式和sturts一起工作的,配置在struts-default.xml文件
    <plug-in className="com.ncs.iframe.base.ejb.command.action.CommandPlugIn">
    ??? <set-property property="config"
    ????? value="/WEB-INF/command/command-config-default.xml"/>
    ??? <set-property property="config/custdir"
    ????? value="/WEB-INF/command/command-config-custdir.xml"/>
    ??? </plug-in>

    ? 而command-config-default.xml 的作用就是定義類似BM的東西,不過這里叫commoand罷了
    ? <command-config>
    ? <command-mappings>
    ??? <command name="/custdir/searchprocess"
    ????? type="com.ncs.iframe.sample.custdir.command.SCDCustomerCommand"
    ????? service="searchCustomer">
    ????? <param name="name" type="java.lang.String"/>
    ????? <result name="result" type="java.util.ArrayList"/>
    ??? </command>
    ?</command-mappings>
    </command-config>

    其中/custdir/searchprocess 表示custdir模塊下的searchprocess 這個(gè)action,type表示action指向的command, service為要執(zhí)行的方法,定義在command里面.

    可是, command又怎么調(diào)用DAO呢???
    別著急, 輪到pfw出場了,汗!

    2. pfw

    pfw-config.xml的一般定義如下:
    <pfw-config>
    ? <database id="iconnect">
    ??? <!-- use either one-->
    ??? <!-- for BEA -->
    ??? <!-- <data-source jndi="iconnectDS" /> -->
    ??? <!-- for Tomcat -->
    ??? <data-source jndi="java:comp/env/jdbc/iconnectDS" />
    ??? <mapping href="/WEB-INF/pfw/pfw-mapping-custdir.xml" />
    ??? <mapping href="/WEB-INF/pfw/pfw-mapping-iextend.xml" />
    ??? <mapping href="/WEB-INF/pfw/pfw-itrust-aa-sql.xml" />
    ? </database>
    </pfw-config>

    定義了一個(gè)jndi,這個(gè)需要在服務(wù)器配置. 其他的就是映射到了幾個(gè)子模塊的pfw配置,提供一個(gè)看看(很恐怖, 太長了):
    作用: 提供DAO到數(shù)據(jù)庫的映射. 包含SQL語句
    <pfw-mapping>?
    ? <map-class id="com.ncs.iframe.sample.custdir.to.SCDCustomerTO">
    ??? <db-table name="TBL_SAMPLE_CUSTOMER"/>
    ??? <field name="customerID" type="java.lang.String">
    ????? <sql name="CUSTOMER_ID" type="CHAR"/>
    ??? </field>
    ??? <field name="name" type="java.lang.String">
    ????? <sql name="NAME" type="CHAR"/>
    ??? </field>
    ??? <field name="telMain" type="java.lang.String">
    ????? <sql name="TEL_MAIN" type="CHAR"/>
    ??? </field>
    ??? <field name="industry.codeId" type="java.lang.String">
    ????? <sql name="INDUSTRY_CD" type="CHAR"/>
    ??? </field>
    ??? <field name="remarks" type="java.lang.String">
    ????? <sql name="REMARKS" type="CHAR"/>
    ??? </field>
    ??? <field name="version" type="java.lang.Integer">
    ????? <sql name="VERSION" type="INTEGER"/>
    ??? </field>
    ?<field name="updatedDt" type="java.sql.Timestamp">
    ??<sql name="UPDATED_DT" type="TIMESTAMP"/>
    ?</field>
    ??? <primary-key name="CUSTOMER_ID"/>
    ??? <version name="UPDATED_DT"/>
    ??? <cache-group name="TBL_SAMPLE_CUSTOMER"/>
    ? </map-class>
    ? <!-- Start of param-map -->
    ? <param-map id="/custdir/getSearchCustomerCountParams">
    ??? <property name="name" sqlType="CHAR"/>
    ? </param-map>
    ? <param-map id="/custdir/getSearchCustomerParams">
    ??? <property name="name" sqlType="CHAR"/>
    ??? <property name="sortOrder" sqlType="CHAR"/>
    ??? <property name="orderType" sqlType="CHAR"/>
    ? </param-map>
    ? <!-- Start of result-map -->
    ? <result-map id="/custdir/getSearchCustomerResults"
    ??? mapClassId="com.ncs.iframe.sample.custdir.to.SCDCustomerTO">
    ? </result-map>
    ? <!-- Start of map-sql -->
    ? <map-sql id="/custdir/searchCustomer" type="query"
    ??? param-map="/custdir/getSearchCustomerParams"
    ??? result-map="/custdir/getSearchCustomerResults"> <![CDATA[
    ??????? select CUSTOMER_ID, NAME, TEL_MAIN, VERSION, UPDATED_DT
    ????????? from TBL_SAMPLE_CUSTOMER
    ????????? <dynamic prepend="where">
    ??????????? <isNotEmpty property="name">
    ????????????? NAME like '%#name#%'
    ??????????? </isNotEmpty>
    ????????? </dynamic>
    ????????? <dynamic prepend="order by">
    ??????????? <isNotEmpty property="sortOrder">
    ??????????? #sortOrder# #orderType#
    ?????????? </isNotEmpty>
    ????????? </dynamic>
    ??????? ]]>
    ?????? <cache-group name="TBL_SAMPLE_CUSTOMER"/>
    ? </map-sql>
    ? <map-sql id="/custdir/getMatchingCustomerCount" type="query"
    ??? param-map="/custdir/getSearchCustomerCountParams"
    ??? result-class="java.lang.Integer"> <![CDATA[
    ??????? select count(NAME)
    ????????? from TBL_SAMPLE_CUSTOMER
    ????????? <dynamic prepend="where">
    ??????????? <isNotEmpty property="name">
    ????????????? NAME like '%#name#%'
    ??????????? </isNotEmpty>
    ????????? </dynamic>
    ??????? ]]> <cache-group name="TBL_SAMPLE_CUSTOMER"/> </map-sql>
    ? <map-sql id="/custdir/getExactMatchingCustomerCount" type="query"
    ??? param-map="/custdir/getSearchCustomerCountParams"
    ??? result-class="java.lang.Integer"> <![CDATA[
    ??????? select count(NAME)
    ????????? from TBL_SAMPLE_CUSTOMER
    ??????? where NAME = '#name#'
    ??????? ]]> <cache-group name="TBL_SAMPLE_CUSTOMER"/> </map-sql>
    ? <map-sql id="/custdir/getAllCustomerList" type="query"
    ??? result-map="/custdir/getSearchCustomerResults"> <![CDATA[
    ??????? select CUSTOMER_ID, NAME, TEL_MAIN, VERSION
    ????????? from TBL_SAMPLE_CUSTOMER
    ??????? order by NAME
    ??????? ]]> </map-sql>
    ? <!-- Start of testing pfw -->
    ? <param-map id="/test/getCustomerParams">
    ??? <property name="custId" sqlType="CHAR"/>
    ? </param-map>
    ? <result-map id="/test/getCustomerResults"
    ??? mapClassId="com.ncs.iframe.sample.custdir.to.SCDCustomerTO">
    ? </result-map>
    ? <map-sql id="/test/getCustomer" type="query"
    ??? param-map="/test/getCustomerParams" result-map="/test/getCustomerResults"> <![CDATA[
    ??????? select CUSTOMER_ID, NAME, TEL_MAIN, INDUSTRY_CD, REMARKS, VERSION, UPDATED_DT, TMP_DATE, TMP_INT, TMP_DBL
    ????????? from TBL_SAMPLE_CUSTOMER
    ????????? <dynamic prepend="where">
    ??????????? <isNotEmpty property="name">
    ??? CUSTOMER_ID = '%#custId#%'
    ??????????? </isNotEmpty>
    ????????? </dynamic>
    ??????? ]]>
    ??????? <cache-group name="TBL_SAMPLE_CUSTOMER"/>
    ?? </map-sql>
    ? <!--- Declarative SQL to showcase Stored-procedure -->
    ? <param-map id="/test/proce_getCustomerParams">
    ??? <property name="In_version" sqlType="INTEGER" storedProcType="IN" />
    ??? <property name="customerID" sqlType="CHAR" storedProcType="INOUT"/>
    ??? <property name="name" sqlType="CHAR" storedProcType="OUT"/>
    ??? <property name="telMain" sqlType="CHAR" storedProcType="OUT"/>
    ??? <property name="industry.codeId" sqlType="CHAR" storedProcType="OUT"/>
    ??? <property name="remarks" sqlType="CHAR" storedProcType="OUT"/>
    ??? <property name="version" sqlType="INTEGER" storedProcType="OUT"/>
    ? </param-map>
    ? <result-map id="/test/proce_getCustomerResults"
    ??? mapClassId="com.ncs.iframe.sample.custdir.to.SCDCustomerTO">
    ? </result-map>
    ? <!-- ALL output (out, INOUT) must be delaredin the result-map
    ????? with the same result-map -->
    ? <map-sql id="/test/proce_getCustomer" type="stored_procedure"
    ??? param-map="/test/proce_getCustomerParams"
    ??? result-map="/test/proce_getCustomerResults"> <![CDATA[
    ???????? { call
    ?? PROCE_GET_CUSTDIR(##In_version##,##customerID##,##name##,##telMain##, ##industry.codeId##, ##remarks##, ##version##)
    ???????? }
    ??????? ]]> </map-sql>
    ? <!--
    ???? begin
    ?? PROCE_GET_CUSTDIR(##In_version##,##customerID##,##name##,##telMain##, ##industry.codeId##, ##remarks##, ##version##);
    ???????? end;
    ??? -->
    ? <param-map id="/test/getSearchCustomerParams">
    ??? <property name="name" sqlType="CHAR" storedProcType="IN" />
    ??? <property name="sortOrder" sqlType="CHAR" storedProcType="IN" />
    ??? <property name="resultSet" sqlType="OTHER" storedProcType="OUT"
    ????? storedProcTypeClass="com.ncs.iframe.sample.OracleStoredProcTypeClass"/>
    ? </param-map>
    ? <!-- Start of result-map -->
    ? <result-map id="/test/getSearchCustomerResults"
    ??? mapClassId="com.ncs.iframe.sample.custdir.to.SCDCustomerTO">
    ? </result-map>
    ? <!-- Start of map-sql -->
    ? <map-sql id="/test/searchCustomer" type="stored_procedure"
    ??? param-map="/test/getSearchCustomerParams"
    ??? result-map="/test/getSearchCustomerResults"> <![CDATA[
    ???????? { call
    ?? PROCE_SEARCH_CUSTDIR(##name##,##sortOrder##,##resultSet##)
    ???????? }
    ??????? ]]>
    ?? </map-sql>
    </pfw-mapping>

    汗啊, 以后就要手這些了, 想起來就害怕.

    posted on 2006-05-09 23:28 Oliver Zhang 閱讀(711) 評論(2)  編輯  收藏

    FeedBack:
    # re: i.frame總結(jié)
    2009-07-30 10:17 | Jawf
    這是公司的東西,你可不能拿出來share噢。  回復(fù)  更多評論
      
    # re: i.frame總結(jié)[未登錄]
    2009-08-14 14:53 | me
    注意涉嫌泄密啊  回復(fù)  更多評論
      

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲综合丁香婷婷六月香| 国产亚洲AV无码AV男人的天堂| 亚洲国产香蕉碰碰人人| a在线视频免费观看| 国产国拍亚洲精品mv在线观看| 两个人日本免费完整版在线观看1| 亚洲av无码不卡私人影院| 老妇激情毛片免费| 亚洲中文字幕伊人久久无码| 久久精品无码免费不卡| 亚洲av永久无码精品表情包| 蜜桃成人无码区免费视频网站| 亚洲视频一区在线| 大陆一级毛片免费视频观看i| 亚洲av综合av一区二区三区| 又粗又黄又猛又爽大片免费| 一级毛片在线完整免费观看| 亚洲乱码精品久久久久..| 最刺激黄a大片免费网站| 亚洲日韩国产精品乱-久| 日韩一品在线播放视频一品免费| 添bbb免费观看高清视频| 狠狠色伊人亚洲综合成人| 成人免费福利视频| 国产亚洲蜜芽精品久久| 亚洲精品无码高潮喷水在线| 成年黄网站色大免费全看| 国产亚洲女在线线精品| 亚洲国产精品无码一线岛国| 永久免费AV无码国产网站| 成人一级免费视频| 亚洲图片中文字幕| 日韩精品电影一区亚洲| 日韩免费人妻AV无码专区蜜桃 | 亚洲AV无码国产精品永久一区| 午夜亚洲福利在线老司机| 88av免费观看| 杨幂最新免费特级毛片| 亚洲色欲www综合网| 又色又污又黄无遮挡的免费视| 91在线老王精品免费播放|