zoukankan      html  css  js  c++  java
  • mybatis 中有趣的符号#与$

    ${ }是字符串替换,相当于直接显示数据,#{ }是预编译处理,相当于对数据加上双引号

    即#是将传入的值当做字符串的形式,先替换为?号,然后调用PreparedStatement的set方法来赋值,而$是将传入的数据直接显示生成sql语句

    --Mybatis在处理#{}时
    select id,name,age from student where id =#{id}
    当前端把id值1传入到后台的时候,就相当于:
    select id,name,age from student where id ='1'
    
    --Mybatis在处理${}时
    select id,name,age from student where id =${id}
    当前端把id值1传入到后台的时候,就相当于:
    select id,name,age from student where id = 1
    

    使用#{ }可以有效的防止SQL注入,提高系统安全性(语句的拼接),如果使用在order by 中就需要使用 ${ }。

    最大区别在于:#{ } 传入值时,sql解析参数是带引号的,而${ }传入值时,sql解析参数是不带引号的。

    缘于生活,而归于工作。本人所书,而意于分享。 如有转载,请注明出处! --活出自己范儿
  • 相关阅读:
    POJ 2251 Dungeon Master
    POJ1321棋盘问题
    CODE[VS] 1003 电话连线
    CCF-201412-1-门禁系统
    CCF-201412-2-Z字形扫描
    为什么要用补码
    CCF-201409-1-相邻数对
    CCF-201409-2-画图
    CCF-201403-1-相反数
    CCF-201403-2-窗口
  • 原文地址:https://www.cnblogs.com/Small-sunshine/p/10758016.html
Copyright © 2011-2022 走看看