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

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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章