双引号”直接连接
<select id="getUsersByName" parameterType="string" resultType="com.buaa.mybatis.po.User">
SELECT * FROM USER WHERE username LIKE "%"#{name}"%"
</select>
评价:best。
利用MySQL内置函数CONCAT()
<select id="getUsersByName" parameterType="string" resultType="com.buaa.mybatis.po.User">
SELECT * FROM USER WHERE username LIKE CONCAT('%',#{name},'%')
</select>
评价:推荐。
利用连接符${}
<select id="getUsersByName" parameterType="string" resultType="com.buaa.mybatis.po.User">
SELECT * FROM USER WHERE username username LIKE '%${value}%'
</select>
评价:不推荐。存在SQL注入的风险。
直接在代码中添加“%”
getUsersByName("%"+username+"%");
评价:不推荐。MyBatis框架的意义就在于减少硬编码,这样做是南辕北辙。
本文探讨了使用MyBatis进行模糊查询的各种方法,并对比了它们的优缺点。包括使用双引号直接连接、MySQL内置函数CONCAT()、连接符${}
929

被折叠的 条评论
为什么被折叠?



