MyBatis--获取参数值

本文详细介绍了MyBatis中获取参数值的多种方式,包括${}和#{}的区别,以及如何处理单个字面量类型、多个字面量类型、map集合类型、实体类类型参数,并讲解了使用@Param注解的情况。特别强调了在使用${}时要注意的单引号问题。

MyBatis获取参数值的两种方式 : ${} 和 #{}

        ${}的本质是字符串 ,#{}的本质是占位符赋值

        ${}使用字符串拼接的方式拼接sql ,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号。

        #{}使用占位符赋值的方式拼接sql ,此时为字符串类型或日期类型的字段进行赋值时 ,可以自己添加单引号。

1.若mapper接口方法的参数为单个的字面量类型,此时可以通过#{}和${}以任意的内容获取参数值,一定要注意${}的单引号问题 。

2.若mapper接口方法的参数为多个的字面量类型,此时MyBatis会将参数放在map集合中,以两种方式存储数据 :

         a:以arg0,arg1...为键,以参数为值

         b:以param1,param2...为键,以参数为值

因此,只需要通过#{}和${}访问map集合的键,就可以获取相对应的值,一定要注意${}的单引号问题。

3.若mapper接口方法的参数为map集合类型的参数,只需要通过#{}和${}访问map集合的键,就可以获取相对应的值,一定要注意${}的单引号问题

4.若mapper接口方法的参数为实体类类型的参数,只需要通过#{}和${}访问实体类中的属性名,就可以获取相对应的属性值.

5.可以在mapper接口方法的参数上设置@Param注解,此时MyBatis会将这些参数放在map中.

以两种方式进行存储

  • 以 @Param 注解的 value 属性值为键 , 以参数为值
  • 以param1,param2...为键 , 以参数为值

1.单个字面量类型的参数

        若mapper接口方法的参数为单个的字面量类型,此时可以通过#{}和${}以任意的内容获取参数值,一定要注意${}的单引号问题。

例:

使用${ } ,需要用单引号括起来

2.多个字面量类型的参数

例 :

如果不写 arg 或 paramt 会报异常

异常 : 编译时映射文件异常 , 并提示可以使用的参数有 [arg1, arg0, param1, param2]

3.map集合类型的参数

接口

测试类(自定义键)

映射文件

4.实体类类型的参数

接口方法

映射文件

参数方法

5.使用@Param标识参数

接口

映射文件

可以直接使用@Param定义好的键

测试方法

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值