记录#{}和${}在mybatis中的坑

前两天写sql语句的时候出现了一个坑,花了我好久的时间。事情是这样的,我在sql语句中写#{}去取java代码传过来的值,查不出来数据,一条都没有。但是我在xml文件中把值固定死是可以查的到的。

那么问题来了?是我的值没传过来吗?并不是!因为控制台看得到 我的值已经传过来了。那这…让人摸不着头脑了哎!不符合逻辑呀~然后我又尝试着用${}去取值,本来只是写着玩,没想到居然查出来了!!!这…这谁顶得住!本来都准备背书包溜了溜了的。硬忍住了。
然后我去看了数据库里面的数据,发现都是char类型,而且长度是97。选中具体数据的话会有空格。

那为什么#{}查不出数据而美元符号却能查到数据,我的疑问又转到了这里?问了问别人。原来是美元符号会自动在后面拼空格,而#{}不会。但是${}是不让用的,sql注入的问题就不想解释了!那一定要用#{}该怎么办呢???
在这里插入图片描述
数据出现的问题可能以后还会有很多,但是这种问题我记下了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值