MyBatis模糊查询
${}:表示拼接sql串,将接收到参数的内容不加任何修饰拼接在sql中,可能引发sql注入。
<select id="getNewOperationCode" resultType="java.lang.String" parameterType="java.lang.String">
select
max(code) as operationCode
from
tm_operation to2
where
code like concat('%','${_parameter}','%')
</select>
#{ }是预编译处理,MyBatis在处理#{ }时,它会将sql中的#{ }替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,使用占位符的方式提高效率,可以防止sql注入。
<select id="getNewOperationCode" resultType="java.lang.String" parameterType="java.lang.String">
select
max(code) as operationCode
from
tm_operation to2
where
code like concat('%',#{_parameter},'%')
</select>