须知:${}和#{}区别

  • ${}为早期使用的,不能防止sql注入。

  • #{}为现在使用的,是可以防止sql注入。

  • 能尽量使用#{}则使用#{},少使用${}。

注意点描述:

我们如果在xml中动态指定表名时,以#{}方式获取,那么sql语句中的表名会有引号,会报出sql错误。

我们可以添加一个如下所示的参数来去掉#{}带来的引号

其参数的说明可以参考下面内容 

 如果我们使用了上述方法,那么我们就不能使用#{}了,只能使用${}方式,不然无法进行参数拼接。

${xxxx}:$将传入的数据直接显示生成在sql中,对于字符串数据,需要手动加上引号。

这时,如果我们还进行了其他传参,那么我们还需要进行其他处理,其具体的操作可以参考以下链接:

Mybatis动态sql的动态表名问题 - 百度文库

若上述记录有误,欢迎指出,一起学习。

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐