失败方法:
b.title like "%"#{title}"%"
报错消息说:sql injection violation, syntax error: syntax error, error in :‘e "%"?"%") tmp_count‘
官方有一种写法如下:
<select id="selectBlogsLike" resultType="Blog">
<bind name="pattern" value="‘%‘ + _parameter.getTitle() + ‘%‘" />
SELECT * FROM BLOG
WHERE title LIKE #{pattern}
</select>
本来以为要通过get
方法来获取两个+
中间的参数,写成了如下,报错:
<bind name="title" value="‘%‘ + blog.getTitle() + ‘%‘"/>
报错信息说找不到blog
熟悉的错误,然后改成了如下:
<bind name="title" value="‘%‘ + title + ‘%‘"/>
成功。
原文:https://www.cnblogs.com/xsyz/p/13844108.html