mybatis中#和$符号的区别

Posted 肖镜泽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis中#和$符号的区别相关的知识,希望对你有一定的参考价值。

#{ }

  1.在使用#{}时意味着用的是预编译,sql语句会用?占位,传的值会用 ‘ ‘ 包住,可防止sql注入 

select * from student where id=#{id}

 

  编译后是

select * from student where id=‘1‘

 

${ }

   1.在使用${}时传的值会原样输入

select * from ${tableName} order by ${id}

  则后台语句为:select * from student order by id
  使用#{}则成:select * from ‘student‘ order by ‘id‘是不对的

注:

  在使用以下的配置时,必须使用#{}

  

<select id="selectMessageByIdI" parameterType="int" resultType="Message">
          select * from message where id=#{id};
</select>
parameterType="int"已声明了参数类型是int所有用#{id}

 

以上是关于mybatis中#和$符号的区别的主要内容,如果未能解决你的问题,请参考以下文章

mybatis中#和$符号的区别

mybatis中#{}和${}符号的区别

MyBatis 中#和$符号的区别

mybatis中#和$的区别

MyBatis探究-----接口类映射XML文件中符号$和#的区别

mybatis.xml文件中#与$符号的区别以及数学符号的处理