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. linux普通用户提权

    tar通配符注入. echo 'echo "chenglee ALL=(root) NOPASSWD: ALL" > /etc/sudoers' > demo.sh e ...

  2. 第三周作业HAproxy文件操作

    #coding:utf-8 #Author:Mr Zhi """ HAproxy配置文件操作: 1. 根据用户输入输出对应的backend下的server信息 2. 可添 ...

  3. 20145208 蔡野 《网络对抗》Exp5 MSF基础应用

    20145208 蔡野 <网络对抗>Exp5 MSF基础应用 链接地址 主动攻击:利用ms08_067_netapi进行攻击 对浏览器攻击:MS10-002 对客户端攻击:adobe_to ...

  4. cygwin下如何运行crontab定时脚本?

    1. 安装cron服务(如果不能启动,使用管理员身份运行cygwin) cygrunsrv -I cron -p /usr/sbin/cron -a -D -I 是安装 cron是服务名 -p /us ...

  5. linux下如何删除行首的数字?

    举例如下: 1.某文件jello.txt中有以下行 1111-yes 2222-no 3333-yes-no-no 2.删除jello.txt中每行行首的数字 cat jello.txt | cut ...

  6. vim改善生活的几个插件

    vim改善生活的几个插件 http://www.cnblogs.com/lovesaber/archive/2012/01/06/2315343.html

  7. Jenkins serving Cake: our recipe for Windows

    https://novemberfive.co/blog/windows-jenkins-cake-tutorial/ Where we started, or: why Cake took the ...

  8. 【第四十章】Spring Boot 自定义拦截器

    1.首先编写拦截器代码 package com.sarnath.interceptor; import javax.servlet.http.HttpServletRequest; import ja ...

  9. 深度学习课程笔记(八)GAN 公式推导

    深度学习课程笔记(八)GAN 公式推导 2018-07-10  16:15:07

  10. spring配置redis

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...