iBatis中的動態(tài)查詢

          下面給出幾個例子和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
          ?? <dynamicprepend="and" open="(" close=")">???
          ??? <isNotNull property="ki.userId" prepend="and" removeFirstPrepend="false">
          ???? USER_ID = #ki.userId#
          ??? </isNotNull>
          ??? <isNotNullproperty="kfi.initiator" prepend="and">
          ???? INITIATOR = #kfi.initiator#
          ??? </isNotNull>
          ??? <isNotNullproperty="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>

          屬性關(guān)鍵字

          含義

          <isEqual>

          如果參數(shù)相等于值 則查詢條件有效。

          <isNotEqual>

          如果參數(shù)不等于值則查詢條件有效。

          <isGreaterThan>

          如果參數(shù)大于值則查詢條件有效。

          <isGreaterEqual>

          如果參數(shù)等于值則查詢條件有效。

          <isLessEqual>

          如果參數(shù)小于值則查詢條件有效。如下所示:

          <isLessEqual prepend = ”AND” property = ”age” compareValue = ”18” >

          ADOLESCENT = ‘TRUE’

          </isLessEqual>

          <isPropertyAvailable>

          如果參數(shù)有使用則查詢條件有效。

          <isNotPropertyAvailable>

          如果參數(shù)沒有使用則查詢條件有效。

          <isNull>

          如果參數(shù)為NULL則查詢條件有效。

          <isNotNull>

          如果參數(shù)不為NULL則查詢條件有效。

          <isEmpty>

          如果參數(shù)為空則查詢條件有效。

          <isNotEmpty>

          如果參數(shù)不為空則查詢條件有效 。參數(shù)的數(shù)據(jù)類型為 Collection String 時參數(shù)不為 NULL 或“”。如下所示:

          <isNotEmpty prepend=”AND” property=”firstName” >

          FIRST_NAME=#firstName#

          </isNotEmpty>

          <isParameterPresent>

          如果參數(shù)類不為NULL 則查詢條件有效。

          <isNotParameterPresent>

          Checks to see if the parameter object is not present (null). Example Usage:

          <isNotParameterPresent prepend=”AND”>

          EMPLOYEE_TYPE = ‘DEFAULT’

          </isNotParameterPresent>


          http://203.208.39.132/search?q=cache:c0ebNIxuwRsJ:blog.csdn.net/yangguoqi/archive/2009/04/25/4122824.aspx+isNotNull+removeFirstPrepend&cd=4&hl=zh-CN&ct=clnk&gl=cn&st_usg=ALhdy292qjrM9JyeUS1SW1kaFKLSpEs4-w
          項目的例子:
          ? <statement id="[customerinfo-lookup]" parameterClass="java.util.Map" resultClass="java.util.HashMap">
          ??? <![CDATA[
          ?? SELECT A.ROW_ID s_CUSTOMER_ID,A.PERMIT_NO s_PERMIT_NO,A.CUSTOMER_DESC s_CUSTOMER_DESC,A.ADDR s_ADDR,
          ???? A.CUSTMGR_ID s_CUSTMGR_ID,B.EMPLOYEE_NAME s_CUSTMGR_NAME,A.MARKET_ORG s_MARKET_ORG,C.DEPT_NAME s_DEPT_NAME
          ????? FROM MD_CUSTOMER A LEFT JOIN MD_EMPLOYEE B ON A.CUSTMGR_ID=B.ROW_ID LEFT JOIN MD_DEPT C ON A.MARKET_ORG=C.ROW_ID
          ????? WHERE 1=1 AND A.STATUS='1'
          ??? ]]>
          ??? <isNotEmpty prepend="and" property="custmgrID">
          ????? <![CDATA[ A.CUSTMGR_ID=#custmgrID# ]]>
          ??? </isNotEmpty>
          ??? <isNotNull property="filter" removeFirstPrepend="true" prepend="AND" open="(" close=")">
          ?? <isNotEmpty prepend="OR" property="filter.m_PERMIT_NO">
          ???? <![CDATA[ A.PERMIT_NO LIKE '%$filter.m_PERMIT_NO$%' ]]>
          ?? </isNotEmpty>
          ?? <isNotEmpty prepend="OR" property="filter.m_CUSTOMER_DESC">
          ???? <![CDATA[ A.CUSTOMER_DESC LIKE '%$filter.m_CUSTOMER_DESC$%' ]]>
          ?? </isNotEmpty>
          ?? <isNotEmpty prepend="OR" property="filter.s_PLACE_NAME">
          ???? <![CDATA[ A.ADDR LIKE '%$filter.m_ADDR$%' ]]>
          ?? </isNotEmpty>
          ??? </isNotNull>
          ??? <isNotNull prepend="ORDER BY" property="sort"> <!--排序-->
          ????? $sort$
          ??? </isNotNull>
          ? </statement>

          posted on 2010-01-22 15:30 飛熊 閱讀(1630) 評論(0)  編輯  收藏 所屬分類: Ibatis

          <2010年1月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 兴海县| 邹城市| 汾阳市| 梁山县| 甘南县| 道孚县| 太谷县| 梁平县| 舟山市| 雷州市| 青川县| 桐梓县| 元谋县| 南宫市| 齐齐哈尔市| 永寿县| 舟曲县| 嘉黎县| 蓬安县| 邛崃市| 明溪县| 玛曲县| 鄱阳县| 蓝田县| 平邑县| 万载县| 仪征市| 犍为县| 建德市| 昭平县| 阿拉善盟| 安化县| 青田县| 山东| 通江县| 涟源市| 郑州市| 崇州市| 普定县| 中山市| 仲巴县|