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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码