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. python学习笔记(十六)-Python多线程多进程

    一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...

  2. 搞定 NodeJS 开发调试

    代码调试有时候是一种充满挑战的工作,如果有一个趁手的调试工具的话,往往可以做到事半功倍的效果.得益于这些年的快速发展,在 NodeJS 生态中已经有了多种调试工具可以使用.我们今年就来分享几个常用的调 ...

  3. HTML 网页开发、CSS 基础语法——七.HTML常用标签

    标题标签(h1-h6) 1.标题标签 ① 标题(Heading),通过<h1>-<h6>六个标签分别来对六个级别的标题进行性定义的. ② <h1>是级别最高,也是字 ...

  4. DeepDB:Learn From Data,not from Queries!

    ABSTRACT DBMS典型学习方法的弊端:手机数据集的成本过高;工作方向或数据库发生改变时,必须重新收集数据.--------------解决:提出了一种新的数据驱动方式,直接支持工作负载和数据库 ...

  5. ❤️❤️爆肝3万字整理小白快速入门分布式版本管理软件:Git,图文并茂(建议收藏)--已码一万字❤️❤️

    @ 目录 什么是Git SVN VS Git 什么是版本控制 安装Git 谁在操作? Git本地仓库 本地仓库构造 重点 Git基本操作 git add git commit git diff git ...

  6. Liunx下Mysql,MongoDB性能优化的配置

    场景 这几天在赶十一上线的项目,但是突然发现接口性能不好,高并发支持不住.又不想改代码,就在数据库层面进行优化. Mysql 分区:项目中有对40万条的数据进行时间查询的要求,就算对DateTime建 ...

  7. eclipse下载安装

    1.下载 网址:https://www.eclipse.org/downloads/ 找到:eclipse-inst-jre-win64.exe 下载... 2.安装 找到-->Eclipse ...

  8. WinForm事件与消息

    WinForm事件与消息 消息概述以及在C#下的封装 Windows下应用程序的执行是通过消息驱动的.所有的外部事件,如键盘输入.鼠标移动.按动鼠标都由OS系统转换成相应的"消息" ...

  9. 创业公司用 Serverless,到底香不香?

    作者 | Mike Butusov 来源 | Serverless 公众号 在过去的 5 年里,使用云厂商处理应用后台的流行程度大幅飙升.其一,初创企业主采用 Serverless 方式,以节省基础设 ...

  10. 洛谷2900 [USACO08MAR]土地征用Land Acquisition (斜率优化+dp)

    自闭的一批....为什么斜率优化能这么自闭. 首先看到这个题的第一想法一定是按照一个维度进行排序. 那我们不妨直接按照\(h_i\)排序. 我们令\(dp[i]\)表示到了第\(i\)个矩形的答案是多 ...