首页 > 移动平台 > 详细

mybatis mapper.xml文件 $和#

时间:2019-05-13 19:35:29      阅读:188      评论:0      收藏:0      [点我收藏+]

1、#在很大程度上可以避免字符串拼接的SQL注入。

2、$在SQL中是取String类型的字符串,直接显示在SQL中;#以字符串的显示出现在SQL中;

    eg: select *from student where id = ${ID}  => select *from student where id = 2;

          select *from student where id = #{ID}  => select *from student where id = ‘’2‘。

 

在应用中遇到的坑:

       我是几个月前,应公司转型的需要,在老大画的巨饼下从C开发转向了Java应用。开始了Java的探索之旅~~~~

       由于是生手,mybatis也是不熟悉,也就在大佬眼里最简单的mybatis的使用中到了坑。

       在一个查询API中,程序将查询的字段和where条件拼装成String类型字符串,用注解的方式将其传到mapper.xml中,刚开始我用的是 #{sql_field}、#{sql_where}

分别获取SQL的字段、where条件,测试的时候,查询结果total一直为0。由于是一对多联合查询,我一个是写xml配置文件时resultMap写的有问题,将一对多

改为单表查询。total结果还是0。

  最后,无意见想起了公司架构大佬提过类似“SQL注入值mybatis$、#”的话题,想起的取值还不一样。用 ${sql_field}、${sql_where}获取SQL的字段、where条件。

       debug>>调试,能够完美的获取到值。

      

mybatis mapper.xml文件 $和#

原文:https://www.cnblogs.com/tree-top/p/10858461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!