<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 国产精品免费视频网站| 亚洲av不卡一区二区三区| 久久久WWW成人免费精品| 久久亚洲私人国产精品vA| 性做久久久久久免费观看| caoporm碰最新免费公开视频| 九月丁香婷婷亚洲综合色| 免费看国产成年无码AV片| 亚洲阿v天堂在线2017免费| 亚洲国产成人久久77| 亚洲精品国产V片在线观看| 91免费在线播放| 免费看黄网站在线看| 亚洲国产成人九九综合| 亚洲午夜国产精品无码| 女人被弄到高潮的免费视频| 拍拍拍无挡免费视频网站| 亚洲精品无码一区二区| 亚洲成AV人片一区二区| 免费羞羞视频网站| 在线观看免费中文视频| 成人精品综合免费视频| 亚洲乱码在线卡一卡二卡新区| 亚洲综合色在线观看亚洲| 成人人观看的免费毛片| 一级毛片在线观看免费| www在线观看播放免费视频日本| 亚洲AV无码一区二区三区人| 久久久久亚洲av无码尤物| 国产一区二区三区在线免费| 亚洲一区二区三区免费在线观看 | 精品成人一区二区三区免费视频| 亚洲网址在线观看你懂的| 亚洲XX00视频| 免费观看男人免费桶女人视频| 国产精品久久免费| 美丽姑娘免费观看在线观看中文版 | 国产精品麻豆免费版| 在线永久看片免费的视频| 国产精品免费观看调教网| 一级人做人a爰免费视频|