• mybatis中mapper接口的参数设置几种方法


    方法一:忽略parameterType,加@param("xxx")注解

    在mapper接口中加上@param("xxx")注解,则在配置文件中直接用即可

    List<Map<String, Object>> getDataByTime(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("platformId") Long platformId);
    
    <select id="getDataByTime" resultType="java.util.Map">
          SELECT
            t.seller_id as sellerId,
            sum(t.payment_price) as total,
          FROM
            trade_orders t
          WHERE
            AND
              t.platform_id = #{platformId}
            <if test="startTime != null and startTime != ''">
            AND
                <![CDATA[t.order_time >= #{startTime}]]>
            </if>
            <if test="endTime != null and endTime != ''">
            AND
              <![CDATA[t.order_time <= #{endTime}]]>
            </if>
            GROUP BY
              t.seller_id
        </select>
    

    方法二:忽略parameterType,不加@param("xxx")注解

    用#{index},是第几个就用第几个的索引,索引从0开始

    List<Map<String, Object>> getDataByTime(String startTime, String endTime, Long platformId);
    
    <select id="getDataByTime" resultType="java.util.Map">
          SELECT
            t.seller_id as sellerId,
            sum(t.payment_price) as total,
          FROM
            trade_orders t
          WHERE
            AND
              t.platform_id = #{3}
            <if test="startTime != null and startTime != ''">
            AND
                <![CDATA[t.order_time >= #{0}]]>
            </if>
            <if test="endTime != null and endTime != ''">
            AND
              <![CDATA[t.order_time <= #{1}]]>
            </if>
            GROUP BY
              t.seller_id
        </select>
    

    方法三:使用Map封装参数,parameterType=“hashmap”

    封装好后,直接在配置文件引用#{key}即可

    List<Map<String, Object>> getDataByTime(HashMap map);
    
    <select id="getDataByTime" parameterType="hashmap" resultType="java.util.Map">
          SELECT
            t.seller_id as sellerId,
            sum(t.payment_price) as total,
          FROM
            trade_orders t
          WHERE
            AND
              t.platform_id = #{platformId}
            <if test="startTime != null and startTime != ''">
            AND
                <![CDATA[t.order_time >= #{startTime}]]>
            </if>
            <if test="endTime != null and endTime != ''">
            AND
              <![CDATA[t.order_time <= #{endTime}]]>
            </if>
            GROUP BY
              t.seller_id
        </select>
    

    方法四:使用List封装参数

    mapper配置文件使用foreach标签循环list

    List<Map<String, Object>> getDataByTime(List<String> list);  
    
    <select id="getXXXBeanList" resultType="java.util.Map">
      select XX from trade_orders where id in
      <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
        #{item}  
      </foreach>  
    </select> 
    
  • 相关阅读:
    java反射机制2
    Java反射机制
    EKT Java企业级关键技术强化 Enterprise Edition
    idea导入tomcat后解决控制台中文乱码问题(day12)
    大对象数据LOB的应用 (day10)
    Java关键技术强化:JDK5.0新特性 (day08)
    Java关键技术强化:JDK5.0新特性1 (day07)
    Java高效特性:反射(二)之获取Class对象的四种方式及其区别 (day06)
    Java关键技术强化:类加载器 (day05)
    Java高级特效:反射 (day04)
  • 原文地址:https://www.cnblogs.com/kobelieve/p/10490635.html
Copyright © 2020-2023  润新知