mybatis 动态sql语句拼接

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>
posted @ 2023-05-03 16:15  红尘过客2022  阅读(191)  评论(0编辑  收藏  举报