mysql Mybatis井号#与$的区别

mysql Mybatis井号#与$的区别,第1张

     mybatis中使用ParameterType向sql语句传参,在sql语句中引用这些参数的时候,有两种方式:#parameterName, $parameterName。

1, #是一个占位符,$是拼接符。

  #是一个占位符,$是拼接符。

(1) 使用#parameterName方式引用参数的时候,Mybatis会把传入的参数当成是一个字符串,自动添加双引号。

(2)使用$parameterName引用参数时,不做任何处理,直接将值拼接在sql语句中。

2,使用 # 能够防止sql注入,$不能避免注入攻击。

     #的方式引用参数,mybatis会先对sql语句进行预编译,然后再引用值,能够有效防止sql注入,提高安全性。$的方式引用参数,sql语句不进行预编译。

3 ,总结 

   建议使用# 。

delimiter就是告诉mysql解释器,该段命令是否已经结束了,是否可以执行了。

默认情况下,delimiter是分号,遇到分号就执行。

后面的双美元符号 就是告诉mysql,遇到双美元符号再执行

括号,花括号中既可以输出简单变量,也可以输出复杂变量,如数组、对象等;1.$a = 'abcd'2.$b = array('aaa' =>'abcd', 'bbb' =>array(12,34))3.echo "{$a}" // 输出 abcd4.echo "{$b['aaa']}" // 输出 abcd5.echo "{$b['bbb'][1]}" // 输出 34 所以写的时候想偷懒就用花括号,不会出错;但是在性能上,单引号的性能最好,因为单引号中的内容会直接被当成字符串,没其他的解析;而解析双引号的时候,会先判断双引号内有没有变量,有变量就把变量用变量值代替,最后再输出双引号内整个的内容;花括号就更不用说了,可以输出复杂的变量内容。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7592286.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-07
下一篇2023-04-07

发表评论

登录后才能评论

评论列表(0条)

    保存