#{}和${}的区别--mybatis

mybatis中#{}和${}的区别

  1. 输入映射
    #{}相当于jdbc sql语句中的占位符 “?” 即PreparedStatement,并且在输入映射时会对参数进行类型解析,当参数是String时,sql语句连接参数时会自动加上’’。
    ${}相当于jdbc sql语句中的连接符 + 即Statement,也就是说在输入映射时会将参数直接添加到sql语句中

  2. 对简单类型进行输入映射,#{}中的参数可以是任意的,但是${}中的参数只能是value。
    简单输入类型包括8种基本类型的封装类,String,Date

以上 的 描 述 会 造 成 , 当 使 用 {}的描述会造成,当使用 使{}传递参数的时候会产生Sql注入问题。只要将OR 1=1设置成参数值,就可以使where条件恒成立。使用时请注意。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值