mybatis---参数传递

参数传递

1>使用@pramas注解指明参数名称,在xml文件中的sql语句传参{}里面就写参数名称就行了,这里会把名称和值封装成一个map,取值的时候放入名称就可以传入实参了

public Student login(@prama(“username”) string username,@prama(“pwd”) string pwd)

2>单个参数传参: 如果你的方法中只需要传一个参数,那么在xml文件中的{}里面只需要写说value就可以了

select * from student where stuid=#{value};

3>如果你的方法传入的是一个javabean对象,那么sql语句中{}直接写上javabean的属性名

select * from student where stuid=#{stuid}

4>如果你要传递多个参数但是又不想使用@prama注解,你可以在传参的时候写上参数的下标,假设你要传username和pwd

seelct * from student where username={0} and pwd=#{1}
这里你可以看成一个数组取值的过程,和数组差不多

#{}和${}传参的区别

1>#{}传递参数和${}传递参数的共同点是都可以获取map的值pojo中的值

2>#{}是以预编译的方式去传参,可以很好地防止sql注入

3> 是 直 接 取 出 参 数 的 值 去 进 行 s q l 语 句 的 拼 接 , 会 产 生 安 全 问 题 , 但 是 如 果 原 生 j d b c 不 正 常 占 位 符 的 情 况 下 我 们 可 以 用 {}是直接取出参数的值去进行sql语句的拼接,会产生安全问题,但是如果原生jdbc不正常占位符的情况下我们可以用 sql,,jdbc{}传参,比如说分表,排序,按年份来分
4>举例

select * from student where stuiid=${id} and username=#{username};
preparing:select * from student where id=2 and username=?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值