<select id="selectLikeName" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from user
where name like CONCAT('%',#{name},'%' ) //注意:where name like ‘%${name}%’
select
<include refid="Base_Column_List" />
from user
where name like CONCAT('%',#{name},'%' ) //注意:where name like ‘%${name}%’
</select>
//为什么说是安全呢?因为还有一种不安全的:where name like ‘%${name}%’ 这种不是预编译功能实现的
攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如“or ‘1’=’1’”这样的语句),有可能入侵参数检验不足的应用程序
如果使用预编译则可以很好的避免,如果需要更安全和高效的话,SQL语句全部替换为存储过程这样的方式,来防止SQL注入。
以后回去慢慢接触的,加油!童鞋们!!!