1.单个参数

mybatis不会做特殊处理,#{参数名/任意名}:取出参数值

例如:接口中方法 public Employee getEmpById(String empId);

XML中 <select id="getEmpById" resultType="com.mybatis.entity.Employee">

select * from t_employee where empId=#{empId}

</select>

    注意:List集合或数组需@Param指定参数名

2.多个参数

2.1 不使用@Param  不推荐

mybatis会做特殊处理,多个参数会被封装成 一个map

key:param1...paramN,或者参数的索引也可以

value:传入的参数值

#{key}取出对应的参数值

    例如:接口中方法 public List<Employee> getEmpsByempNameAndSex(String empName,Integer empSex);

XML中  <select id="getEmpsByempNameAndSex" resultType="com.mybatis.entity.Employee">

 select * from t_employee where empName=#{} and empSex=#{}
                            </select>

                            或者

                           <select id="getEmpsByempNameAndSex" resultType="com.mybatis.entity.Employee">

 select * from t_employee where empName=#{param1} and empSex=#{param2}
                           </select>

2.2 使用@Param

明确指定封装参数时map的key,多个参数会被封装成 一个map

key:使用@Param注解指定的值

value:参数值

#{指定的key}取出对应的参数值

例如:接口中方法 public List<Employee> getEmpsByempNameAndSex(@Param("empName")String empName,@Param("empSex")Integer empSex);

XML中 <select id="getEmpsByempNameAndSex" resultType="com.mybatis.entity.Employee">

select * from t_employee where empName=#{empName} and empSex=#{empSex}

</select>

2.3 Map传参

#{key}:取出map中对应的值

例如:接口中方法 public List<Employee> getEmpsByempNameAndSex(Map<String, Object> map);

XML中 <select id="getEmpsByempNameAndSex" resultType="com.mybatis.entity.Employee">

 select * from t_employee where empName=#{empName} and empSex=#{empSex}

</select>

                测试代码

                            Map<String, Object> map=new HashMap<>();

                            map.put("empName", "王昭君");

                            map.put("empSex", 0);

   3.Bean参数 

     如果多个参数正好是我们业务逻辑的数据模型,我们就可以直接传入pojo

#{属性名}:取出传入的pojo的属性值

例如:接口中方法 public Integer addEmployee(Employee employee);

XML中 <insert id="addEmployee" parameterType="com.mybatis.entity.Employee">

                               insert into t_employee(empId,empName,empSex,empAge) values(#{empId},#{empName},#{empSex},#{empAge})

                            </insert>

MyBatis探究-----传递参数详解的更多相关文章

  1. MyBatis探究-----动态SQL详解

    1.if标签 接口中方法:public List<Employee> getEmpsByEmpProperties(Employee employee); XML中:where 1=1必不 ...

  2. Android事件传递机制详解及最新源码分析——ViewGroup篇

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 在上一篇<Android事件传递机制详解及最新源码分析--View篇>中,详细讲解了View事件的传递机制,没掌握或者掌握不扎实的小伙伴 ...

  3. Mybatis SQL映射文件详解

    Mybatis SQL映射文件详解 mybatis除了有全局配置文件,还有映射文件,在映射文件中可以编写以下的顶级元素标签: cache – 该命名空间的缓存配置. cache-ref – 引用其它命 ...

  4. Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

    封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...

  5. iptables参数详解

    iptables参数详解 搬运工:尹正杰 注:此片文章来源于linux社区. Iptalbes 是用来设置.维护和检查Linux内核的IP包过滤规则的. 可以定义不同的表,每个表都包含几个内部的链,也 ...

  6. mha配置参数详解

    mha配置参数详解: 参数名字 是否必须 参数作用域 默认值 示例 hostname Yes Local Only - hostname=mysql_server1, hostname=192.168 ...

  7. $.ajax()方法所有参数详解;$.get(),$.post(),$.getJSON(),$.ajax()详解

    [一]$.ajax()所有参数详解 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注 ...

  8. MyBatis的动态SQL详解

    MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑,本文详解mybatis的动态sql,需要的朋友可以参考下 MyBatis 的一个强大的特性之一通常是它 ...

  9. 【转】jqGrid 各种参数 详解

      [原文]http://www.cnblogs.com/younggun/archive/2012/08/27/2657922.htmljqGrid 各种参数 详解 JQGrid JQGrid是一个 ...

随机推荐

  1. mysql安装了半天参考了文章搞定了

    https://blog.csdn.net/yelllowcong/article/details/79641313 mysql -uroot -pbrucelee 总结下: 1.安装时注意具体的路径 ...

  2. maven deploy Return code is: 400, ReasonPhrase: Bad Request.

    最近在自己本地deploy jar 到本地 nexus的时候,报错 Return code is: 400, ReasonPhrase: Bad Request. 解决思路: 1.查看maven pr ...

  3. Linux命令行抓包及包解析工具tshark(wireshark)使用实例解析

    在Linux下,当我们需要抓取网络数据包分析时,通常是使用tcpdump抓取网络raw数据包存到一个文件,然后下载到本地使用wireshark界面网络分析工具进行网络包分析. 最近才发现,原来wire ...

  4. jenkins-参数化构建(二)插件:Extended Choice Parameter

    一.Extended Choice Parameter插件 这个插件相对丰富,安装过程就不过多介绍了,在点击项目设置后会出现下载的插件名字. 写在文件中构建时效果如下:

  5. Web Service学习(一)

    1.WebMethod特性包含哪些属性,都有什么用? 1.BufferResponse属性 该属性表明是否启用对Web Service方法响应的缓冲.当设置为true时,Web Service方法将响 ...

  6. Ubuntu mysql连接错误10060/10061的方法

    mysql 10060错误一般因为防火墙 ufw allow 3306; //允许外部访问3306端口ufw allow from 192.168.1.115;  //允许此IP访问所有的本机端口uf ...

  7. OO第三次博客作业

    一.规格化的发展历史 最早的程序设计都是面向机器,从一开始使用的机器语言,到后面的汇编语言,都是面向机器的语言,编写困难也容易出错.随着需求的发展,程序的编写从面向机器走向面向过程,但由于goto语句 ...

  8. Appium-Python-Windows环境搭建笔记

    Appium版本:1.11.0 操作系统:Windows7-64位 开发语言:Python 3.7.2 测试应用平台:安卓 5.1.1 Appium服务端 一.JDK 也许你会觉得很奇怪,我搭建Pyt ...

  9. HttpClient参观记:.net core 2.2 对HttpClient到底做了什么?

    .net core 于 10月17日发布了 ASP.NET Core 2.2.0 -preview3,在这个版本中,我看到了一个很让我惊喜的新特性:HTTP Client Performance Im ...

  10. 腾讯云“智能+互联网TechDay”:揭秘智慧出行核心技术与创新实践

    现如今,地面交通出行与大家的生活息息相关.在当前城市道路日益复杂和拥挤的情况下,如何保证交通出行的安全和便捷相信是每个人以及众多专家.科研工作者重点关注的问题. “智慧交通”系统是解决交通发展瓶颈的有 ...