• iBATIS动态标签


    iBATIS动态标签  
    §<dynamic>标签
    §二元标签
    §一元标签
    §<iterate>标签
    § 共同的属性 prepend,open,close
    <dynamic>标签
    
    §<dynamic>标签
    §属性 prepend,open,close
    二元条件标签
    
    §<isEqual property=“age” compareValue=“20”>  
    比较属性值和静态值或另一个属性值是否相等  
    §<isNotEqual>  
    比较属性值和静态值或另一个属性值是否不相等。  
    §<isGreaterThan>  
    比较属性值是否大于静态值或另一个属性值。  
    §<isGreaterEqual>  
    比较属性值是否大于等于静态值或另一个属性值。  
    §<isLessThan>  
    比较属性值是否小于静态值或另一个属性值。  
    §<isLessEqual>  
    比较属性值是否小于等于静态值或另一个属性值。  
    一元条件标签
    §<isPropertyAvailable>  
    检查是否存在该属性(存在parameter bean的属性)  
    §<isNotPropertyAvailable>  
    检查是否不存在该属性(不存在parameter bean的属性)  
    §<isNull>  
    检查属性是否为null  
    §<isNotNull>  
    检查属性是否不为null  
    §<isEmpty>  
    检查Collection.size()的值,属性的String或String.valueOf()值,是否为null或空(“”或size() < 1)  
    §<isNotEmpty>  
    检查Collection.size()的值,属性的String或String.valueOf()值,是否不为null或不为空(“”或size() > 0)
    其他标签
    
    
    §<isParameterPresent>  
    检查是否存在参数对象(不为null)
    §<isNotParameterPresent>  
    检查是否不存在参数对象(参数对象为null)
    §<iterate>  
    遍历类型为java.util.List的元素。  
    view plaincopy to clipboardprint?
    <?xml version="1.0" encoding="UTF-8" ?>
    
    <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"  
       "http://ibatis.apache.org/dtd/sql-map-2.dtd">
    
    <sqlMap>
    
        <!-- 动态查询1-->
        <select id="getOrders1" parameterClass="com.air.Account"
            resultClass="com.air.Product">
            SELECT   
                orders.id as id,   
                orders.product as product,  
                orders.customer as customer   
            FROM orders  
            <dynamic prepend=" WHERE ">
                <isNull property="username">customer IS NOT NULL</isNull>
                <isNotNull property="username">
                    orders.customer=#username#  
                </isNotNull>
            </dynamic>
        </select>
    
        <!-- 动态查询2-->
        <select id="getOrders2" parameterClass="com.air.Account"
            resultClass="com.air.Product">
            SELECT   
                o.id as id,   
                o.product as product,  
                o.customer as customer  
            FROM orders o   
                <isNotNull property="username">
                    INNER JOIN user_account a ON o.customer=a.username   
                </isNotNull>
                <dynamic prepend="where ">
                    <isNotEmpty property="groupname" prepend="and " open="(" close=")">
                        a.groupname=#groupname#  
                    </isNotEmpty>
                </dynamic>
        </select>
    
        <!-- 动态查询3-->
        <select id="getOrders3" parameterClass="com.air.Product"
            resultClass="com.air.Product">
            SELECT   
                orders.id as id,   
                orders.product as product,  
                orders.customer as customer   
            FROM orders   
            <dynamic prepend="WHERE ">
                <isNotEmpty property="product" prepend="and" open="(" close=")" removeFirstPrepend="true">
                    product=#product#  
                </isNotEmpty>
                <isNotEmpty property="customer" prepend="and" open="(" close=")">
                    customer=#customer#  
                </isNotEmpty>
            </dynamic>
        </select>
          
        <!-- 动态查询4-->
        <select id="getOrders4" parameterClass="com.air.Product"
            resultClass="com.air.Product">
            SELECT   
                *  
            FROM orders   
            <dynamic prepend="WHERE ">
                <iterate property="keywords" open="(" close=")" conjunction="OR">   
                    product=#keywords[]#  
                </iterate>
            </dynamic>
    <!--     <dynamic prepend="WHERE product IN ">-->
    <!--         <iterate property="keywords" open="(" close=")" conjunction=","> -->
    <!--             #keywords[]#-->
    <!--         </iterate>-->
    <!--     </dynamic>-->
        </select>
    </sqlMap>
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
       "http://ibatis.apache.org/dtd/sql-map-2.dtd">
    <sqlMap>
    <!-- 动态查询1-->
    <select id="getOrders1" parameterClass="com.air.Account"
       resultClass="com.air.Product">
       SELECT
        orders.id as id,
        orders.product as product,
        orders.customer as customer
       FROM orders
       <dynamic prepend=" WHERE ">
        <isNull property="username">customer IS NOT NULL</isNull>
        <isNotNull property="username">
         orders.customer=#username#
        </isNotNull>
       </dynamic>
    </select>
    <!-- 动态查询2-->
    <select id="getOrders2" parameterClass="com.air.Account"
       resultClass="com.air.Product">
       SELECT
        o.id as id,
        o.product as product,
        o.customer as customer
       FROM orders o
        <isNotNull property="username">
         INNER JOIN user_account a ON o.customer=a.username
        </isNotNull>
        <dynamic prepend="where ">
         <isNotEmpty property="groupname" prepend="and " open="(" close=")">
          a.groupname=#groupname#
         </isNotEmpty>
        </dynamic>
    </select>
    <!-- 动态查询3-->
    <select id="getOrders3" parameterClass="com.air.Product"
       resultClass="com.air.Product">
       SELECT
        orders.id as id,
        orders.product as product,
        orders.customer as customer
       FROM orders
       <dynamic prepend="WHERE ">
        <isNotEmpty property="product" prepend="and" open="(" close=")" removeFirstPrepend="true">
         product=#product#
        </isNotEmpty>
        <isNotEmpty property="customer" prepend="and" open="(" close=")">
         customer=#customer#
        </isNotEmpty>
       </dynamic>
    </select>
    
    <!-- 动态查询4-->
    <select id="getOrders4" parameterClass="com.air.Product"
       resultClass="com.air.Product">
       SELECT
        *
       FROM orders
       <dynamic prepend="WHERE ">
        <iterate property="keywords" open="(" close=")" conjunction="OR">
         product=#keywords[]#
        </iterate>
       </dynamic>
    <!--   <dynamic prepend="WHERE product IN ">-->
    <!--    <iterate property="keywords" open="(" close=")" conjunction=","> -->
    <!--     #keywords[]#-->
    <!--    </iterate>-->
    <!--   </dynamic>-->
    </select>
    </sqlMap>
    

      

  • 相关阅读:
    EOJ 1068 石子游戏-B
    二分图匹配(匈牙利算法模板)
    注入(3)--远程线程注入(CreateRemoteThread)
    cmd运行Java命令时编译通过,但是找不到主类或无法加载主类
    Java线程的两种实现方法
    Java String类一些操作的内存问题
    Java构造方法的继承调用
    Android布局(5)--绝对布局(AbsoluteLayout)
    Android布局(4)--相对布局(RelativeLayout)
    Android布局(3)--帧布局(FrameLayout)
  • 原文地址:https://www.cnblogs.com/elleniou/p/3119129.html
Copyright © 2020-2023  润新知