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解析参数是不带引号的。

    缘于生活,而归于工作。本人所书,而意于分享。 如有转载,请注明出处! --活出自己范儿
  • 相关阅读:
    二叉树
    bfs
    E-Gold Coins
    D-We Love MOE Girls
    A
    哈希--查找出现过的数字
    二分查找
    KMP简单应用
    KMP算法(2)
    [JSOI2008]最大数
  • 原文地址:https://www.cnblogs.com/Small-sunshine/p/10758016.html
Copyright © 2011-2022 走看看