1. MyBatis的传入参数parameterType类型分两种

1. 1. 基本数据类型:int,string,long,Date;

1. 2. 复杂数据类型:类和Map

2. 如何获取参数中的值:

2.1  基本数据类型:#{参数} 获取参数中的值

2.2  复杂数据类型:#{属性名}  ,map中则是#{key}

3.案例:

3.1 基本数据类型案例

  1. <sql id="Base_Column_List" >
  2. id, car_dept_name, car_maker_name, icon,car_maker_py,hot_type
  3. </sql>
  4. <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
  5. select
  6. <include refid="Base_Column_List" />
  7. from common_car_make
  8. where id = #{id,jdbcType=BIGINT}
  9. </select>

3.2 复杂类型--map类型

  1. <select id="queryCarMakerList" resultMap="BaseResultMap" parameterType="java.util.Map">
  2. select
  3. <include refid="Base_Column_List" />
  4. from common_car_make cm
  5. where 1=1
  6. <if test="id != null">
  7. and  cm.id = #{id,jdbcType=DECIMAL}
  8. </if>
  9. <if test="carDeptName != null">
  10. and  cm.car_dept_name = #{carDeptName,jdbcType=VARCHAR}
  11. </if>
  12. <if test="carMakerName != null">
  13. and  cm.car_maker_name = #{carMakerName,jdbcType=VARCHAR}
  14. </if>
  15. <if test="hotType != null" >
  16. and  cm.hot_type = #{hotType,jdbcType=BIGINT}
  17. </if>
  18. ORDER BY cm.id
  19. </select>

3.3 复杂类型--类类型

  1. <update id="updateByPrimaryKeySelective" parameterType="com.epeit.api.model.CommonCarMake" >
  2. update common_car_make
  3. <set >
  4. <if test="carDeptName != null" >
  5. car_dept_name = #{carDeptName,jdbcType=VARCHAR},
  6. </if>
  7. <if test="carMakerName != null" >
  8. car_maker_name = #{carMakerName,jdbcType=VARCHAR},
  9. </if>
  10. <if test="icon != null" >
  11. icon = #{icon,jdbcType=VARCHAR},
  12. </if>
  13. <if test="carMakerPy != null" >
  14. car_maker_py = #{carMakerPy,jdbcType=VARCHAR},
  15. </if>
  16. <if test="hotType != null" >
  17. hot_type = #{hotType,jdbcType=BIGINT},
  18. </if>
  19. </set>
  20. where id = #{id,jdbcType=BIGINT}
  21. </update>

3.4 复杂类型--map中包含数组的情况

  1. <select id="selectProOrderByOrderId" resultType="com.epeit.api.model.ProOrder" parameterType="java.util.HashMap" >
  2. select sum(pro_order_num) proOrderNum,product_id productId,promotion_id promotionId
  3. from pro_order
  4. where 1=1
  5. <if test="orderIds != null">
  6. and
  7. <foreach collection="orderIds" item="item" open="order_id IN(" separator="," close=")">
  8. #{item,jdbcType=BIGINT}
  9. </foreach>
  10. </if>
  11. GROUP BY product_id,promotion_id
  12. </select>

4.注意点:

记住这些

原文转载来自 http://blog.csdn.net/u010235716/article/details/51698422

MyBatis的传入参数parameterType类型的更多相关文章

  1. MyBatis中传入参数parameterType类型详解

    前言 Mybatis的Mapper文件中的select.insert.update.delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型.本文主要给大家 ...

  2. MyBatis之传入参数parameterType

    在MyBatis的select.insert.update.delete这些元素中都提到了parameterType这个属性.MyBatis现在可以使用的parameterType有基本数据类型和Ja ...

  3. MyBatis之传入参数——parameterType(转)

    鸣谢:http://blog.csdn.net/liaoxiaohua1981/article/details/6862764 ------------------------------------ ...

  4. 12: MyBatis之传入参数parameterType

    源链接地址:http://blog.csdn.net/liaoxiaohua1981/article/details/6862764

  5. Mybatis----传入参数parameterType类型详解

    Mybatis----传入参数parameterType类型详解 前言 Mybatis的Mapper文件中的select.insert.update.delete元素中有一个parameterType ...

  6. MyBatis之传入参数

    在MyBatis的select.insert.update.delete这些元素中都提到了parameterType这个属性.MyBatis现在可以使用的parameterType有基本数据类型和Ja ...

  7. 【转载】MyBatis之传入参数

    原文地址:http://blog.csdn.net/liaoxiaohua1981/article/details/6862764 在MyBatis的select.insert.update.dele ...

  8. (转载)mybatis中传入参数是list或map

    原文地址:http://blog.csdn.net/aya19880214/article/details/41961235 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集 ...

  9. Mybatis:传入参数方式以及#{}与${}的区别

    一.在MyBatis的select.insert.update.delete这些元素中都提到了parameterType这个属性.MyBatis现在可以使用的parameterType有基本数据类型和 ...

随机推荐

  1. Java线程同步与锁

    一.synchronized synchronized锁什么?锁对象.可能锁对象包括: this, 临界资源对象,Class类对象. 1,同步方法 synchronized T methodName( ...

  2. ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) A

    2018-02-19 A. Palindromic Supersequence time limit per test 2 seconds memory limit per test 256 mega ...

  3. ODAC(V9.5.15) 学习笔记(十四)TCRBatchMove

    名称 类型 说明 AbortOnKeyViol Boolean 在处理数据时,如果发生主键冲突或主键校验失败时,是否中断 AbortOnProblem Boolean 发生问题时是否中断 Change ...

  4. error和exception有什么区别?

    Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题.比如:内存资源不足等.对于这种错误,程序基本无能为力,除了退出运行外别无选择,它是由Java虚拟机抛 ...

  5. hihoCoder week1 最长回文子串

    题目链接 https://hihocoder.com/contest/hiho1/problem/1 做法 Manacher #include <bits/stdc++.h> using ...

  6. LuoguP3948 数据结构

    题目地址 题目链接 题解 以为这题虽然是数据随机也不至于那么水吧... 于是秉着先打部分分和暴力的原则先写了暴力和min,max为-inf和inf的特殊点,对于暴力搞了个小优化,延后的操作直接前缀和答 ...

  7. P3810 【模板】三维偏序(陌上花开)(cdq分治)

    思路 看到这种偏序类的题目,而且不要求强制在线,可以立刻想到cdq分治 注意这题有一个问题,就是询问的是小于等于而不是小于,如果相等的话两个元素会相互贡献,而cdq的特点是右区间不能对左边有影响,所以 ...

  8. [CodeForces - 276A] Lunch Rush

    题目链接:http://codeforces.com/problemset/problem/276/A 从这n个输入中求最大值,注意 和 k的比较,定义一个maxn,对每个输入进行计算即可. AC代码 ...

  9. Apple ID双重认证验证码无法输入问题

    问题:用Apple ID登录老版本ios系统时,会提示“”需要提供Apple ID验证码才能登陆.请键入您的密码,并随后键入显示在您其他设备上的验证码”. 解决:老版本系统无输入验证码的地方,那就把验 ...

  10. 【Hadoop 分布式部署 五:分布式部署之分发、基本测试及监控】

    1.对  hadoop 进行格式化 到  /opt/app/hadoop-2.5.0  目录下 执行命令:    bin/hdfs namenode -format 执行的效果图如下  (  下图成功 ...