现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate。使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数。面对各种复杂的业务场景,传递参数也是一种学问。

下面给大家总结了以下几种多参数传递的方法。

方法1:顺序传参法

public User selectUser(String name, int deptId);<select id="selectUser" resultMap="UserResultMap">select * from userwhere user_name = #{0} and dept_id = #{1}
</select>

#{}里面的数字代表你传入参数的顺序。

这种方法不建议使用,sql层表达不直观,且一旦顺序调整容易出错。

方法2:@Param注解传参法

public User selectUser(@Param("userName") String name, int @Param("deptId") deptId);<select id="selectUser" resultMap="UserResultMap">select * from userwhere user_name = #{userName} and dept_id = #{deptId}
</select>

#{}里面的名称对应的是注解 @Param括号里面修饰的名称。
这种方法在参数不多的情况还是比较直观的,推荐使用。

方法3:Map传参法

public User selectUser(Map<String, Object> params);<select id="selectUser" parameterType="java.util.Map" resultMap="UserResultMap">select * from userwhere user_name = #{userName} and dept_id = #{deptId}
</select>

#{}里面的名称对应的是 Map里面的key名称。

这种方法适合传递多个参数,且参数易变能灵活传递的情况。

方法4:Java Bean传参法

public User selectUser(User params);<select id="selectUser" parameterType="com.test.User" resultMap="UserResultMap">select * from userwhere user_name = #{userName} and dept_id = #{deptId}
</select>

#{}里面的名称对应的是 User类里面的成员属性。

这种方法很直观,但需要建一个实体类,扩展不容易,需要加属性,看情况使用。

Mybatis传递多个参数的4种方式相关推荐

  1. mybatis传递多个参数_Mybatis传递多个参数的4种方式(干货)

    现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate.使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数.面对各种复杂的业务场景,传递参数也是一种学问. ...

  2. 表单提交和超链接请求传递参数的几种方式

    表单提交和超链接请求传递参数的几种方式 这段时间在使用easy-ui的datagrid,他有自己提交表单的方式,所以就整理整理页面对参数的提交方式: 注:下面代码都已经过测试. 1. HTML提交表单 ...

  3. WebAPI Post模式下传递、接收参数的几种方法

    创建实体类 前一篇博客讲了Get模式下的传递.接收参数的几种方法,现在来介绍一下Post模式下传递.接收参数的几种方法.首先还是老样子,创建一个空的ASP.NET WebAPI工程,在Models文件 ...

  4. springboot 获取控制器参数的几种方式

    这里介绍springboot 获取控制器参数有四种方式 1.无注解下获取参数 2.使用@RequestParam获取参数 3.传递数组 4.通过URL传递参数 无注解下获取参数 无注解下获取参数,需要 ...

  5. SpringMVC获取参数的几种方式

    SpringMVC获取参数的几种方式 前言: 年末了,忙了一年了却发现系统的整理的东西很少,一些基础的东西都未做整理,这里就将它随便整理一下,增加一些印象,当然在网上看到一些好的资料也会整理下来以备后 ...

  6. php解析url并得到url中的参数及获取url参数的四种方式

    本文给大家介绍php解析url并得到url中的参数及获取url参数的四种方式,涉及到将字符串参数变为数组,将参数变为字符串的相关知识,本文代码简单易懂,感兴趣的朋友一起看看吧 下面一段代码是php解析 ...

  7. 织梦 php 传值,php获取post参数的几种方式

    php获取post参数的几种方式,ajax提交数据的几种类型,PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型. 1.$_POST['para ...

  8. python命令行模式怎么输入_python获得命令行输入的参数的两种方式

    外部直接执行python文件时,我们有时需要获得命令行的参数6ok免费资源网 获得命令行参数的两种方式6ok免费资源网 1.通过sys.argv6ok免费资源网 sys.argv:获得一个参数列表,第 ...

  9. C语言 二维数组作为函数参数的4种方式

    前言 多维数组中,二维数组是最常用的一种.在C语言编程中,二维数组的定义.取值以及赋值都比较容易,与一维数组类似.然而,在将二维数组作为函数参数传递时,参数结构较复杂,难以理解.本文章是实用型文章,注 ...

最新文章

  1. CodeForces 157A Game Outcome
  2. 使用Helm 在容器服务k8s集群一键部署wordpress
  3. 兰州理工大学计算机考研真题,2017年兰州理工大学计算机与通信学院893计算机操作系统考研题库...
  4. 服务器虚拟化的毕业设计,基于Vmware的服务器虚拟化管理毕业论文.doc
  5. alexa api php,php 读取 alexa信息
  6. Abp vnext Web应用程序开发教程 6 —— 作者:领域层
  7. 跨域请求——jsonp与cors
  8. 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表
  9. 7-16 装箱问题 (20 分)
  10. ubuntu mongodb安装
  11. 【180928】小飞机打陨石游戏源码
  12. Qt学习之路系列教程目录
  13. html中如何写平方根等,excel平方根
  14. ARM920T的MMU与Cache ——转载
  15. c语言列宽作用,c语言|格式化输入输出详解
  16. 计算机专业课911,2018年北京物资学院911计算机学科专业基础综合考研复习资料...
  17. 第979期机器学习日报(2017-05-24)
  18. Java 8 字符串和时间相互转换
  19. python爬取网页停止工作_python人员api停止工作
  20. linux 超级作用域,linux dhcp超级作用域配置

热门文章

  1. form表单提交前进行ajax或js验证,校验不通过不提交
  2. 2022-2028年中国锂电池用聚烯烃隔膜行业市场发展调研及投资方向分析报告
  3. 2022-2028年中国硅质原料行业全景调研及投资前景展望报告
  4. Linux shell 学习笔记(7)— 构建基本脚本(变量、重定向、管道、状态码)
  5. 业余时间用哪里,哪里就有发展的可能
  6. 网络安全工具:Nmap
  7. pytorch中调整学习率的lr_scheduler机制
  8. 一个框架看懂优化算法之异同 SGD/AdaGrad/Adam
  9. LeetCode简单题之距离顺序排列矩阵单元格
  10. 手把手从零开始搭建k8s集群超详细教程