Mybatis中传参数的方法

1.使用注解绑定,mapper.xml 对应方法 不需要指定 parameterType,(推荐使用注解绑定方式)

方法接口:

List<CalculateIdeacommissionsum> selectByExample(@Param("example") CalculateIdeacommissionsum example,@Param("roleNameList") List<String> roleNameList);

方法对应的Mapper.xml

<!--  通过userStatus 排序查询 升序    --><select id="selectByExample"  resultMap="BaseResultMap">    select    id, calculateYear, calculateMonth, userId, userCode, userName, userStatus, companyName,    companyId, curDeptId, curDeptName, roleName  from Calculate_IdeaCommissionSum    where calculateYear=#{example.calculateYear,jdbcType=SMALLINT}    and calculateMonth=#{example.calculateMonth,jdbcType=SMALLINT}    and deleteFlag=#{example.deleteFlag,jdbcType=TINYINT}    <if test="roleNameList!=null and roleNameList.size()&gt; 0">        <foreach collection="roleNameList" item="rolename" separator="," open="and rolename in(" close=")">            #{rolename,jdbcType=VARCHAR}        </foreach>    </if>    order by userStatus</select>2.如果接口参数没有使用注解绑定,mapper.xml 对应方法 需要指定对应的参数类型。

List<CalculateIdeacommissionsum> selectByExample(CalculateIdeacommissionsum example);

方法对应的Mapper.xml

<!--  通过userStatus 排序查询 升序    --><select id="selectByExample" parameterType="实体类路径"  resultMap="BaseResultMap">    select    id, calculateYear, calculateMonth, userId, userCode, userName, userStatus, companyName,    companyId, curDeptId, curDeptName, roleName  from Calculate_IdeaCommissionSum    where calculateYear=#{calculateYear,jdbcType=SMALLINT}    and calculateMonth=#{calculateMonth,jdbcType=SMALLINT}    order by userStatus</select>

3. parameterType 也可以使用Map存放参数进行查询

接口方法:

List<BaseEmpinfo> selectByParam(Map<String,String> map);

接口方法对应的Mapper.xml 文件方法:

<select id="selectByParam" parameterType="java.util.Map" resultType="com.pacific.rspBonus.model.po.twBonus.mbg.BaseEmpinfo">        select * from Base_EmpInfo        where deleteFlag=0        <if test="userName != null and userName!=''">          and  userName=#{userName,jdbcType=VARCHAR}        </if></select>4.mybatis 遍历循环collection标识我们程序传值过来的集合open表示我们遍历的集合以什么字符开始close表示我们遍历的集合以什么字符结尾item是给我们集合遍历取一个变量 separator 表示的是分隔符,将我们集合中遍历出来的数据用","分隔开。
<if test="roleNameList!=null and roleNameList.size()&gt; 0">        <foreach collection="roleNameList" item="rolename" separator="," open="and rolename in(" close=")">            #{rolename,jdbcType=VARCHAR}        </foreach>    </if>
sql如下:

select * from Calculate_IdeaCommissionSum where calculateYear=2019 and calculateMonth=2 and roleName  in ('副总经理','总监','经纪人');

将roleName的多个条件用关系转化为 roleName in (roleName1,roleName2,roleName3...)  in中用foreach循环

参考博客:https://jingyan.baidu.com/album/00a07f3873520e82d028dcce.html?picindex=1

转载于:https://www.cnblogs.com/ming-blogs/p/10643076.html

Mybatis中使用循环遍历相关推荐

  1. python list遍历删除_Python中list循环遍历删除数据的正确方法

    前言 初学Python,遇到过这样的问题,在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(num_list) f ...

  2. python遍历循环怎么理解_聊聊python中的循环遍历

    python之循环遍历 关于循环遍历大家都知道,不外乎for和while,今天我在这写点不一样的循环和遍历.在实践中有时会遇到删除列表中的元素,那么循环遍历列表删除指定元素该怎么做呢? 还是直接上代码 ...

  3. (js)模板字符串中使用循环遍历数据:

    (js)模板字符串中使用循环遍历数据: // 数据格式 let wordList = {id: "2",question: "李四",content: [{ n ...

  4. python中for循环遍历列表的几种方法

    列表在使用过程中,经常需要遍历列表的所有元素,对每个元素执行相同的操作.今天介绍python中for循环遍历列表的几种方法. 方法1:使用for循环简单结构遍历 首先我们新建一个城市列表,然后分别展示 ...

  5. for循环执行 mybatis_Mybatis中使用循环遍历

    Mybatis中传参数的方法 1.使用注解绑定,mapper.xml 对应方法 不需要指定 parameterType,(推荐使用注解绑定方式) 方法接口: List selectByExample( ...

  6. Python中的循环遍历列表

    1.前言 在我们编写脚本过程中,经常会进行遍历列表里每一个元素,并对指定的元素进行操作,最常见的就是使用for循环进行遍历,本篇将总结除了使用for循环,还有其他的循环遍历方法. 2.使用for循环简 ...

  7. LeetCode 426. 将二叉搜索树转化为排序的双向链表(BST中序循环遍历)

    文章目录 1. 题目 2. 解题 1. 题目 将一个 二叉搜索树 就地转化为一个 已排序的双向循环链表 . 对于双向循环列表,你可以将左右孩子指针作为双向循环链表的前驱和后继指针,第一个节点的前驱是最 ...

  8. java 遍历循环_如何在Java中实现循环遍历?

    我想对以下元素进行循环: [1,2,11,12,21,22111112121122,-,2222222] 或者例如 [1,2,3,11,12,13,21,22,23,31,32,33111111211 ...

  9. 【Linux】Shell脚本中如何使用“循环”遍历“数组”中的元素(包括MySQL的常用指令介绍)

    一.背景 实习过程中,今天mentor突然让我拉取一下远端园区数据库中的部分信息,因为包含很多不同园区的数据信息,而且要以园区为单位生成文件来对数据进行存放,因此自然是需要使用shell脚本来自动生成 ...

最新文章

  1. 大北农集团被指控授意窃取商业秘密
  2. 分段路由中的控制指的什么?—Vecloud
  3. STP、RSTP、MSTP
  4. python怎么打日志_怎样调试 日志 python 代码
  5. 最短路径Dijkstra讲解,工具包使用 python
  6. 转载---LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
  7. 【路径规划】基于matlab A_star算法机器人动态避障路径规划【含Matlab源码 1033期】
  8. JDK,JRE,JVM的区别
  9. 深度学习入门_对ORL数据集进行特征提取降维后SVM分类
  10. 35岁高以翔过劳猝死:人生无常,求各位项目经理少加点班吧
  11. 什么是基站定位?基站定位的原理及特点
  12. 遭遇Trojan PSW OnlineGames Trojan HiJack a Trojan PSW ZhuXian
  13. Java爬取英雄联盟官网,全英雄皮肤背景图片
  14. DTI-ATS入门(2):DTI协议纵览
  15. java 导出excel带多种颜色
  16. TokenInsight对话首席——揭秘7*24小时用数学解码交易的神秘玩家:量化交易者
  17. wps word文档生成目录的时候显示断裂会生成大纲怎么办_word目录制作技巧:快速生成文档总目录和章节下子目录...
  18. GBase 8s 客户端工具之dbaccess
  19. linux服务器安装anaconda,然后远程使用jupyter
  20. 声网电话面试的总结,技术面, 声网20min(c/c++算法工程化类职位) (一面通过拿到实习offer)

热门文章

  1. 如何在Outlook中显示Google日历
  2. 骰子算法 php,骰子作画的算法
  3. kubectl get -o 格式化
  4. 亚马逊跟卖的一点建议
  5. mysql 文件描述符_MySQL异常探究:File Descriptor xxxx exceeded FD_SETSIZE=xxxx
  6. mysql命令远程连接cmd命令行_如何从Windows命令提示符连接到mysql命令行
  7. linux下抓包工具 wireshark,网络抓包工具Wireshark下载安装使用详细教程
  8. 当下互联网行业中,哪些职位比较好?看看字节跳动程序员如何说
  9. 李笑来在 GitHub 上开源了一本电子书
  10. 基于体素的3D目标检测网络:VoxelNet