小问题之ibatis在sql中的通配符

ibatis in Action中提到的sql通配符查询问题有三种解决方法
1,传入的参数中自带通配符如  如直接传入"%keyword%"
2,使用代替语法  就是用'$'代替'#'  '$'的功能基本和'#'一样  但是星号'$'存在注入风险
3,使用sql表达式拼接

书上给的例子是
like '%'||#keyword#||'%'

这个在多数DB中没错
但是mysql不支持||作拼接操作(只做逻辑OR的左右)
因此需要使用函数

Concat('%',#keywords[]#,'%')

参见
http://book.51cto.com/art/200812/102426.htm

你可能感兴趣的:(sql,xml,mysql,ibatis)