1、单个参数(基本类/包装类+String)

这种情况MyBatis可直接使用这个参数,不需要经过任何处理。

一个参数情况下#{}中内容随便写

public Employee getEmployeeById(Integer id );
<select id="selectEmployee" resultType="com.atguigu.mybatis.beans.Employee">
<!-- select * from tbl_employee where id = #{id} -->
select id, last_name lastName, email, gender from tbl_employee where id = #{iaaad}
</select>

2、多个参数

任意多个参数,都会被MyBatis重新包装成一个Map传入。Map的key是param1,param2,或者0,1…,不适合多参数,用的较少

取值: #{0 1 2 …N / param1 param2 ….. paramN}

public Employee  getEmployeeByIdAndLastName(Integer id, String lastName);
<select id="getEmployeeByIdAndLastName" resultType="com.atguigu.mybatis.beans.Employee">
select id, last_name, email,gender
from tbl_employee
where id = #{param1}
and last_name = #{param2}
</select>

3、命名参数

当有多个参数时,使用@Param为参数起一个名字,MyBatis就会将这些参数封装进map中,key就是我们自己指定的名字

取值: #{自己指定的名字 / param1 param2 … paramN}

public Employee getEmployeeByIdAndLastName(@Param("id")Integer id, @Param("lastName")String lastName);

<select id="getEmployeeByIdAndLastName" resultType="com.atguigu.mybatis.beans.Employee">
select id, last_name, email,gender from tbl_employee
where id = #{id/param1} and last_name = #{lastName/param2}
</select>

4、POJO(常用)

当这些参数属于业务POJO时,我们直接传递POJO

取值: #{POJO的属性名}

5、Map

我们也可以自己封装多个参数为map,直接传递

取值: #{使用封装Map时自己指定的key}

	//Mapper接口
public Employee getEmployeeByMap(Map<String,Object> map); //调用
Map<String,Object > map = new HashMap<>();
map.put("id", 1024);
map.put("name", "莉香");
Employee employee = mapper.getEmployeeByMap(map);
<select id="getEmployeeByMap" resultType="com.atguigu.mybatis.beans.Employee">
select id, last_name, email,gender from ${tableName} where id = #{id} and last_name = #{name}
</select>

6) Collection/Array

会被MyBatis封装成一个map传入, Collection对应的key是collection,Array对应的key是array. 如果确定是List集合,key还可以是list.

取值:

    Array: #{array}

    Collection(List/Set): #{collection}

    List : #{collection / list}

mybatis之参数传递的方式 | mybatis的更多相关文章

  1. mybatis --- 以接口的方式进行编程

    );  我们来学习下接口方式的编程. 接口类IBookDao.java package com.mybatis.dao; import com.mybatis.model.Book; public i ...

  2. Spring Boot集成MyBatis的2种方式

    目录 写在前面 准备工作 配置数据库驱动 配置数据源 原生集成MyBatis 依赖配置 注册MyBatis核心组件 定义并使用映射器 通过MyBatis-Spring-Boot-Starter集成 默 ...

  3. mybatis入门--mapper代理方式开发

    不使用代理开发 之前,我们说了如何搭建mybatis框架以及我们使用mybatis进行简单的增删改查.现在,我们一起来构建一个dao层的完整代码.并用@test来模拟service层对dao层进行一下 ...

  4. SpringBoot 整合 Mybatis + Mysql——XML配置方式

    一.介绍 SpringBoot有两种方法与数据库建立连接,一种是集成Mybatis,另一种用JdbcTemplate,本文主要讨论集成Mybatis方式. SpringBoot整合Mybatis也有两 ...

  5. spring、springmvc和mybatis整合(xml方式)

    今天搭建一个基于xml的ssm整合demo.话不多说,直接上代码. 我的开发环境如下: web服务器:tomcat8 开发工具:STS JDK版本:1.8 项目构建工具:maven 1.pom.xml ...

  6. SpringBoot从入门到精通二(SpringBoot整合myBatis的两种方式)

    前言 通过上一章的学习,我们已经对SpringBoot有简单的入门,接下来我们深入学习一下SpringBoot,我们知道任何一个网站的数据大多数都是动态的,也就是说数据是从数据库提取出来的,而非静态数 ...

  7. SpringBoot系列-整合Mybatis(XML配置方式)

    目录 一.什么是 MyBatis? 二.整合方式 三.实战 四.测试 本文介绍下SpringBoot整合Mybatis(XML配置方式)的过程. 一.什么是 MyBatis? MyBatis 是一款优 ...

  8. mybatis的参数传递

    mybatis的参数传递分为两种:1.单参数传递  2.多参数传递 单参数 mybatis会直接取出参数值给Mapper文件赋值 例子如下: 1.Mapper文件内容如下: public void d ...

  9. SpringBoot集成MyBatis的Bean配置方式

    SpringBoot集成MyBatis的Bean配置方式 SpringBoot是一款轻量级开发的框架,简化了很多原先的xml文件配置方式,接下来就介绍一下如何不适用XML来配置Mybatis spri ...

随机推荐

  1. CF1556E-Equilibrium【栈,树状数组】

    正题 题目连接:https://codeforces.com/contest/1556/problem/E 题目大意 两个长度为\(n\)的序列\(a,b\),\(q\)次询问一个区间\([l,r]\ ...

  2. Go语言中的并发编程

    并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因. Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天) ...

  3. 我决定!墙裂推荐高清无码Python电子书(文中福利)

    @ 目录 前言 视频网站学习的优点和缺点 Python基础 游戏 网站开发 前言 近几年学了Python,查阅了不少资料,如B站,慕课网,我要自学网等等,然后自己边看学书自己整理学习资料,想分享下如何 ...

  4. ServerManager.exe 0xc0000135 应用程序错误(Windows Server 2016、2019)

    前言 将 Windows Server 2019或2016 .NET Framework移除. IIS卸载后,服务器管理器.控制面板部分功能.事件查看器等都无法正常开启. 解决办法 打开CMD,输入D ...

  5. LaTeX bib 引用为 作者 + 年份

    将bib文件命名为ref.bib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% @Description: %%%%%%%% @Version: 1.0 %%%% ...

  6. python简单操作excel

    python操作excel 写入excel # 写入excel import xlwt # 创建xls对象 wb = xlwt.Workbook() # 新增两个表单页(sheet1) sh1 = w ...

  7. windos10环境下编译python3版pjsua库

    环境:windows10_x64python3.9_x64pjsua-2.10vs2015 pjsua编译参考这里: https://www.cnblogs.com/MikeZhang/p/pjsip ...

  8. HttpServletResponse 入门

    继承体系 功能: 设置响应消息 1. 设置响应行 格式:HTTP/1.1 200 ok 设置状态码:setStatus(int sc) 2. 设置响应头:setHeader(String name, ...

  9. logging模块二

    背景,在学习logging时总是遇到无法理解的问题,总结,尝试一下更清晰明了了,让我们开始吧! logging模块常用format格式说明 %(levelno)s: 打印日志级别的数值 %(level ...

  10. BUAA2020软工作业——提问回顾与个人总结

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾与个人总结 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方 ...