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. P5241 序列(滚动数组+前缀和优化dp)

    P5241 序列 挺神仙的一题 看看除了dp好像没什么其他办法了 想着怎么构个具体的图出来,然鹅不太现实. 于是我们想办法用几个参数来表示dp数组 加了几条边肯定要的吧,于是加个参数$i$表示已加了$ ...

  2. Python3 根据m3u8下载视频,批量下载ts文件并且合并

    Python3 根据m3u8下载视频,批量下载ts文件并且合并 m3u8是苹果公司推出一种视频播放标准,是一种文件检索格式,将视频切割成一小段一小段的ts格式的视频文件,然后存在服务器中(现在为了减少 ...

  3. Linux一些基本配置

    Linux发行版:centos 6.5 配置yum源 wget http://mirrors.163.com/.help/CentOS6-Base-163.repo -P /etc/yum.repos ...

  4. windows下常用linux对应工具

    tail 可从http://files.cnblogs.com/hantianwei/tail.zip下载,解压后exe,如下: e:\>tail -fn 300 tool-slow.logus ...

  5. 2018-2019-1 20189206 《Linux内核原理与分析》第五周作业

    linux内核分析学习笔记 --第四章 系统调用的三层机制 学习重点--系统调用 用户态.内核态和中断 Intel x86 CPU有四种不同的执行级别,分别是0,1,2,3其中数字越小,特权越高. L ...

  6. JS实现页面字体繁简转换

    封装的JS代码 // 网页简繁体转换 // 本js用于客户在网站页面选择繁体中文或简体中文显示,默认是正常显示,即简繁体同时显示 // 在用户第一次访问网页时,会自动检测客户端语言进行操作并提示.此功 ...

  7. 2018年11月16日 我和SB交流有代沟-继续字符串4

    test="abcdeffedcba" v=test.lstrip("bcabc")#寻找的是最多匹配然后移除指定字符串 print("1.lstri ...

  8. 数据库 --- 4 多表查询 ,Navicat工具 , pymysql模块

    一.多表查询 1.笛卡儿积 查询 2.连接 语法: ①inner    显示可构成连接的数据 mysql> select employee.id,employee.name,department ...

  9. uniGUI试用笔记(五)

    uniGUI的主窗体可以采用多页面方式进行管理,参考网上的资料,都是用TUniFrame + TUniPageControl 来实现,尝试了一下,效果还不错,如下图: 用TUniFrame 能够使用继 ...

  10. git克隆源码时提示fatal: HTTP request failed怎么办?

    答: 升级git版本即可 centos下升级git的方法在此