mybatis常用占位符的方式传递参数,比较安全,可以防止sql注入。
有些时候,特殊逻辑需要java封装好一些特殊的查询条件,然后和mybatis一起封装成特殊sql进行执行。
{param}:替换参数
${sql}:拼接sql语句。
遇到一些模板类的功能,例如用户选择查询条件,或者查询语句,就需要动态sql技术。
这个玩意本身在技术上是不安全的,需要全面的sql校验才能避免数据库的渗透。
一般业务禁止使用,特殊业务谨慎使用。
<select id="getAllAutoNodes" resultType = "com.wht.auto.group.NodeVO">
select host_name as hostName
from t_node tn,t_tenant tt
where tn.app_id=tt.app_id
<if test='sql != null and sql !="" '>
and ${sql}
</if>
</select>
标签:语句,app,查询,拼接,sql,mybatis
From: https://www.cnblogs.com/hcgk/p/17369207.html