前天,有朋友问我,select * from T_STUDENT where S_NAME like '张%';这种like语句在ibatis中怎么写,他们现在的项目是用ibatis作为持久层的框架。
我的第一反应是这样写:
<select id="showOneStudentByName" parameterClass="String" resultMap="studentORM">
select * from t_stu where s_name like #name#
</select>
select * from t_stu where s_name like #name#
</select>
但是在调用中需要在参数的前后加上%,比如这样:
return sqlMapper.queryForList("Student.showOneStudentByName", "%"+name+"%");
虽然这样可行,但总显得有些不协调。仔细看了ibaitis的文档后发现最好的写法是这样
<select id="showOneStudentByName" parameterClass="String" resultMap="studentORM">
select * from t_stu where s_name like '%'||#name#||'%'
</select>
select * from t_stu where s_name like '%'||#name#||'%'
</select>
在调用的时候就不用去前后加%了。
注意:sql语句不要写成select * from t_stu where s_name like '%$name$%',这样极易受到注入攻击。
本文介绍了在使用Ibatis框架进行数据库操作时,如何正确实现模糊查询功能。通过示例展示了如何编写安全且高效的SQL语句,并给出了实际调用的方法。
4742

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



