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

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

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

    yxhxj2006

    常用鏈接

    統計

    最新評論

    iBatis中使用動態查詢

    iBatis中的動態查詢還是比較好用的 
    如果想深入學習,可以參考 Manning.iBATIS.in.Action.Jan.2007 
    下面給出幾個例子和dtd定義: 
    <select id="selectDispatchedKey" parameterClass="KeyAndKeyFlowInfo" resultMap="KeyAndKeyFlowResult"> 
    select distinct 
    KEY_ID, 
    USER_ID, 
    INITIATOR, 
    INIT_DATE, 
    INITIATOR_EMAIL, 
    SGS_KEY.BRANCH_NAME, 
    APPROVER, 
    APPROVER_EMAIL, 
    APPROVE_DATE 
    from 
    SGS_KEY, 
    SGS_KEY_FLOW 
    where SGS_KEY.APPLY_FLOW_ID=SGS_KEY_FLOW.KEY_FLOW_ID 
    <dynamic prepend="and" open="(" close=")"> 
    <isNotNull property="ki.userId" prepend="and" removeFirstPrepend="false"> 
    USER_ID = #ki.userId# 
    </isNotNull> 
    <isNotNull property="kfi.initiator" prepend="and"> 
    INITIATOR = #kfi.initiator# 
    </isNotNull> 
    <isNotNull property="kfi.initDate" prepend="and"> 
    INIT_DATE = #kfi.initDate# 
    </isNotNull> 
    </dynamic> 
    </select> 

    <update id="updateKeyFlow" parameterClass="KeyFlowInfo"> 
    update SGS_KEY_FLOW set 
    <dynamic> 
    KEY_FLOW_ID =#keyFlowId# 
    <isNotNull property="branchName" prepend=","> 
    BRANCH_NAME = #branchName# 
    </isNotNull> 
    <isNotEqual property="operation" prepend="," compareProperty="operation" compareValue="0"> 
    OPERATION = #operation# 
    </isNotEqual> 
    <isNotNull property="initiator" prepend=","> 
    INITIATOR = #initiator# 
    </isNotNull> 
    <isNotNull property="initiatorEmail" prepend=","> 
    INITIATOR_EMAIL = #initiatorEmail# 
    </isNotNull> 
    <isNotNull property="initDate" prepend=","> 
    INIT_DATE = #initDate# 
    </isNotNull> 
    <isNotNull property="approver" prepend=","> 
    APPROVER = #approver# 
    </isNotNull> 
    <isNotNull property="approverEmail" prepend=","> 
    APPROVER_EMAIL = #approverEmail# 
    </isNotNull> 
    <isNotNull property="approveDate" prepend=","> 
    APPROVE_DATE = #approveDate# 
    </isNotNull> 
    <isNotEqual property="keyNum" prepend="," compareProperty="keyNum" compareValue="0"> 
    KEY_NUM = #keyNum# 
    </isNotEqual> 
    <isNotNull property="applyReason" prepend=","> 
    APPLY_REASON = #applyReason# 
    </isNotNull> 
    <isNotNull property="rejectReason" prepend=","> 
    REJECT_REASON = #rejectReason# 
    </isNotNull> 
    </dynamic> 
    where 
    KEY_FLOW_ID =#keyFlowId# 
    </update> 
    0:26 2008-2-20補充: 

    讓iBatis中的insert返回主鍵 [ibatis insert 返回 自增主鍵] 
    iBatis SQL-map 文件書寫注意事項 


    http://ibatis.apache.org/dtd/sql-map-2.dtd 中有<dynamic>的定義 
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - <br> DYNAMIC ELEMENTS <br>- - - - - - - - - - - - - - - - - - - - - - - - --> 
    <!ELEMENT dynamic (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST dynamic >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 

    <!ELEMENT isNotNull (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isNotNull >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 

    <!ELEMENT isNull (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isNull >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 

    <!ELEMENT isNotPropertyAvailable (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isNotPropertyAvailable >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #REQUIRED 
    removeFirstPrepend (true|false) #IMPLIED 

    <!ELEMENT isPropertyAvailable (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isPropertyAvailable >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #REQUIRED 
    removeFirstPrepend (true|false) #IMPLIED 

    <!ELEMENT isEqual (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isEqual >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 
    compareProperty CDATA #IMPLIED 
    compareValue CDATA #IMPLIED 

    <!ELEMENT isNotEqual (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isNotEqual >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 
    compareProperty CDATA #IMPLIED 
    compareValue CDATA #IMPLIED 

    <!ELEMENT isGreaterThan (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isGreaterThan >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 
    compareProperty CDATA #IMPLIED 
    compareValue CDATA #IMPLIED 

    <!ELEMENT isGreaterEqual (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isGreaterEqual >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 
    compareProperty CDATA #IMPLIED 
    compareValue CDATA #IMPLIED 

    <!ELEMENT isLessThan (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isLessThan >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 
    compareProperty CDATA #IMPLIED 
    compareValue CDATA #IMPLIED 

    <!ELEMENT isLessEqual (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isLessEqual >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 
    compareProperty CDATA #IMPLIED 
    compareValue CDATA #IMPLIED 

    <!ELEMENT isEmpty (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isEmpty >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 

    <!ELEMENT isNotEmpty (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isNotEmpty >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    property CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 

    <!ELEMENT isParameterPresent (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isParameterPresent >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 

    <!ELEMENT isNotParameterPresent (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST isNotParameterPresent >
    prepend CDATA #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    removeFirstPrepend (true|false) #IMPLIED 

    <!ELEMENT iterate (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | isLessThan | isLessEqual | isPropertyAvailable | isNotPropertyAvailable)*> 
    <!ATTLIST iterate >
    prepend CDATA #IMPLIED 
    property CDATA #IMPLIED 
    removeFirstPrepend (true|false|iterate) #IMPLIED 
    open CDATA #IMPLIED 
    close CDATA #IMPLIED 
    conjunction CDATA #IMPLIED 
    > 

    posted on 2012-09-20 00:54 奮斗成就男人 閱讀(981) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 岛国精品一区免费视频在线观看| 免费一级毛片一级毛片aa| 亚洲人成网站在线观看青青| 亚洲国产精品日韩av不卡在线| 亚洲手机中文字幕| 日韩精品极品视频在线观看免费| 毛片A级毛片免费播放| 国产精品免费看久久久久| 亚洲H在线播放在线观看H| 在线观看H网址免费入口| 91亚洲视频在线观看| 一级特黄录像视频免费| 在线观看永久免费视频网站| 亚洲精品无码少妇30P| 99精品视频在线观看免费专区| 青青草国产免费久久久91 | 91热成人精品国产免费| 亚洲精品国产情侣av在线| 久久受www免费人成_看片中文| 亚洲高清国产拍精品青青草原| 亚洲永久永久永久永久永久精品| 337p日本欧洲亚洲大胆人人| 亚洲国产电影av在线网址| 一区二区三区免费在线视频 | 亚洲AV性色在线观看| 国产大片线上免费看| a毛片成人免费全部播放| 久久久亚洲精品无码| 91精品免费国产高清在线| 亚洲日韩久久综合中文字幕| 国产亚洲老熟女视频| 老妇激情毛片免费| 国产av无码专区亚洲av桃花庵| 又大又硬又粗又黄的视频免费看| 免费电视剧在线观看| WWW亚洲色大成网络.COM| 亚洲色偷拍另类无码专区| 免费观看美女用震蛋喷水的视频| 亚洲日韩图片专区第1页| 成人在线免费观看| 国产情侣久久久久aⅴ免费|