MyBatis方法多参数的处理及问题

Mybatis的接口方法多参数传递的四种处理方式

1.使用接口方法参数的索引传递

  使用java方法的默认规范,参数是有索引的,我们需要在SQL中指定参数的索引位置

    接口中的方法:

    

    mapper.xml中的SQL:

    

    这里需要注意:不同的版本索引传值的写法可能不同 低版本可以使用这种直接使用参数索引的方式

    高一点的版本得写成:id = #{arg0} and name = #{arg1}

    我在其它博客中看到有的版本还支持直接参数传值的方式.(版本问题没有太深研究)

    

    当出现图中问题时 可能就是这个问题导致

2.使用@Param注解

  使用Mybatis的注解功能,在定义接口方法的时候声明SQL中使用参数名

    接口中的方法:

    

    mapper.xml中的SQL:

    

3.传递对象

  可以直接传递一个对象,在SQL中直接使用对象的属性值,来进行多参数的传递

    接口中的方法:

    

     mapper.xml中的SQL:

    

4.传递map集合

  使用map集合的方式传入多个参数值,在SQL中我们使用map中的key来映射值

    测试:

    

    接口中的方法:

    

    mapper.xml中的SQL:

    

总结:一般最好使用注解或者使用对象进行多参数的处理

原文地址:https://www.cnblogs.com/lzpsir/p/11985751.html

时间: 2024-08-29 18:42:29

MyBatis方法多参数的处理及问题的相关文章

mybatis中String参数的传递

mybatis中String参数的传递 Keywords selectKeywords(@Param("key") String key); 可以在mapper方法的参数钱添加 @Param("key") 注意括号中相当于别名 mybatis中传递数组 转自:https://blog.csdn.net/s592652578/article/details/52871884/ 1.foreach简单介绍: foreach的主要用在构建in条件中,它可以在SQL语句中进

main方法的参数

敲例子的时候无意中把主方法的参数给落下了,当时没有发现,保存之后就去编译,运行了,通常情况下编译没有错误那胜利就在掌握之中了,没想到这次我竟然在"不一般"的行列中,编译无误,运行出错,错误信息如下: "找不到主方法?记得我写了main()方法了啊?回到代码处看了一下,也是static的啊?没问题啊,算了把错误信息拿出来与代码对照着看吧,发现唯一不一样的地方就是我的方法中没有参数, 立刻将参数添进去,编译,果然能运行了,回头想想,我也没传参啊,为什么还非得把它添进去啊?平时自己

C#中方法的参数的四种类型

C#中方法的参数有四种类型: 1. 值参数类型  (不加任何修饰符,是默认的类型) 2. 引用型参数  (以ref 修饰符声明) 3. 输出型参数  (以out 修饰符声明) 4. 数组型参数  (以params 修饰符声明) =================================================== 1. 值传递: 值类型是方法默认的参数类型,采用的是值拷贝的方式.也就是说,如果使用的是值类型,则可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值.使用

详解SpringMVC中Controller的方法中参数的工作原理

前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html SpringMVC中Controller的方法参数可以是Integer,Double,自定义对象,ServletRequest,ServletResponse,ModelAndView等等,非常灵活.本文将分析SpringMVC是如何对这些参数进行处理的,

Spring中的AOP(五)——在Advice方法中获取目标方法的参数

摘要: 本文介绍使用Spring AOP编程中,在增强处理方法中获取目标方法的参数,定义切点表达式时使用args来快速获取目标方法的参数. 获取目标方法的信息 访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点.JoinPoint里包含了如下几个常用的方法: Object[] getArgs:返回目标方法的参数 Signature getSignature:返回目标方法的签名 Ob

详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析] good

目录 前言 现象 源码分析 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口介绍 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口的具体应用 常用HandlerMethodArgumentResolver介绍 常用HandlerMethodReturnValueHandler介绍 本文开头现象解释以及解决方案 编写自定义的HandlerMet

Effective Java - 方法的参数声明

给方法的参数加上限制是很常见的,比如参数代表索引时不能为负数.对于某个关键对象引用不能为null,否则会进行一些处理,比如抛出相应的异常信息. 对于这些参数限制,方法的提供者必须在文档中注明,并且在方法开头时检查参数,并在失败时提供明确的信息,即: detect errors as soon as possible after they occur 这将成为准确定位错误的一大保障. 如果没有做到这一点,最好的情况是方法在处理过程中失败并抛出了莫名其妙的异常,错误的源头变得难以定位,但这是最好的情

Effective Item 17 - 关于方法的参数声明

给方法的参数加上限制是很常见的,比如参数代表索引时不能为负数.对于某个关键对象引用不能为null,否则会进行一些处理,比如抛出相应的异常信息. 对于这些参数限制,方法的提供者必须在文档中注明,并且在方法开头时检查参数,并在失败时提供明确的信息,即detect errors as soon as possible after they occur,这将成为准确定位错误的一大保障. 如果没有做到这一点,最好的情况是方法在处理过程中失败并抛出了莫名其妙的异常,错误的源头变得难以定位,但这是最好的情况.

c# 方法传递参数

一.参数的使用方法: 1.值参数(Value Parameter ) 格式:方法名称(参数类型 参数名称[,参数类型 参数名称]) 2.引用参数(Reference Parameter ) 格式:方法名称(ref 参数类型 参数名称[,ref 参数类型 参数名称]) 3.输出参数(Out Parameter) 格式:方法名称(out 参数类型 参数名称[,out 参数类型 参数名称]) 二.值参数与引用参数及输出参数的区别: 2.1 值参数中实参的值不随形参值变更而变更: 形参与实参值互不影响,