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


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


    網站導航:
     
    主站蜘蛛池模板: 永久免费毛片手机版在线看| 中文字幕无码免费久久99| 国产91在线免费| 老牛精品亚洲成av人片| 国产免费观看青青草原网站| 亚洲国产AV一区二区三区四区| 在线视频免费观看www动漫 | 久久亚洲中文字幕精品有坂深雪| 国产又黄又爽又大的免费视频 | 伊人久久亚洲综合影院首页| 在线观看av永久免费| 亚洲av无码片在线观看| 成人毛片18女人毛片免费视频未| 亚洲成年网站在线观看| 日韩免费视频播放| 美女被羞羞网站免费下载| 久久久久亚洲爆乳少妇无 | 女人18毛片a级毛片免费| 亚洲AV无码片一区二区三区 | 四虎成人免费影院网址| 久久精品国产亚洲AV| 亚洲国产成人久久笫一页| 插鸡网站在线播放免费观看| 亚洲综合日韩中文字幕v在线| 99爱在线精品免费观看| 精品亚洲国产成人av| 国产午夜亚洲精品理论片不卡 | 亚洲欧洲春色校园另类小说| 99精品全国免费观看视频| 美女被爆羞羞网站在免费观看| 亚洲熟妇无码八AV在线播放| 永久免费在线观看视频| 女bbbbxxxx另类亚洲| 久久精品7亚洲午夜a| 在线观看免费人成视频| 九九热久久免费视频| 亚洲ts人妖网站| MM131亚洲国产美女久久| 91热成人精品国产免费| 国产亚洲精品2021自在线| 亚洲av日韩av高潮潮喷无码|