Mybatis学习与使用_02.传参输入

1.对#与$两种动态占位符的解析

#{key}

#{key}作用是当输入参数时会明确参数的类型,而不是将其直接作为字符串使用

${key}

${key}中传入的参数会被转化为字符串使用,可能会导致注入攻击的问题.

什么时候要使用$呢?

因为#占位符只能替代"右值",即容器名(如表明,列名,关键字等),而不能替代"左值",如果想要实现"? =?",左边就需要使用$,右边需要使用#


2.{key}的命名规则

①简单类型与复杂类型的数据

简单数据类型为参数为仅有一个的数据,比如int,double,string…
复杂数据类型包括实体类型(对象),数组类型,集合类型等

②传入参数为单个简单类型

Mapper接口定义的函数规定了传入参数的类型,此时sql语句中使用到的{key}中的key可以随便写,因为参数只有一个,默认会进行对应.

③传入参数为实体类型

实体类型的数据为对象,此时{key}中的key的名字必须为对应的对象的属性名

④传入参数为多个简单类型

一共有两种方法:
->1.使用@Param注解

//在mapper接口中定义方法时,在形参列表中
...func(@Param("a")String name,@Param("b")int id)

即类似于给参数其别名,在使用时只能使用别名
->2.利用Mybatis的默认机制
原理类似于Mybatis为我们默认提供了两种别名
即param1,param2…分别对应第一个形参,第二个形参…
或arg0,arg1…也是分别对应第一个形参,第二个形参…
注意一共是从0开始,一个是从1开始

⑤传入参数为Map类型

{key}中的key只需要直接使用Map中自定义的的key名与Value名即可.

注:对传入参数为集合等需要遍历的等到动态sql语句时再详述

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值