博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBitis 中 # 和 $ 区别
阅读量:3563 次
发布时间:2019-05-20

本文共 422 字,大约阅读时间需要 1 分钟。

MyBitis 中 # 和 $ 区别

  1. $ { } 在Properties文件中是变量占位符,属于静态文本替换,比如${ driver} 可以代表 com.mysql.jdbc.Driver。
    在MyBitis映射文件中, ${ }属于拼接符。 $将传入的数据直接显示生成在sql中。如:where username= ${username},如果传入的值是111,那么解析成sql时的值为where username=111;也就是在字符替换后不会有引号。这就可能造成sql注入问题。参数使用的是默认的value或者@param中的名字。
  2. #{ }是sql的参数占位符,Mybitis会自动将#{ }替换为?,传入的数据都单成字符串,也就是都加上引号,类似JDBC的PreparedStatement,这样能避免sql注入问题。参数使用的是对应方法中的参数名字或@param中的名字。
    综上,除非传入的参数是表名或列名,一般使用#{ }比较好。

转载地址:http://hnerj.baihongyu.com/

你可能感兴趣的文章
vector 的点点滴滴的总结
查看>>
测试用例
查看>>
自动化测试学习步骤
查看>>
自动化测试需要掌握的知识
查看>>
HTTP协议
查看>>
Python小程序——冒泡排序
查看>>
cmd中输入net start mysql 提示:服务名无效或者MySQL正在启动 MySQL无法启动
查看>>
LeetCode 206反转链表 [javsScript]
查看>>
[LeetCode javaScript] 3. 无重复字符的最长子串
查看>>
[LeetCode javaScript] 6. Z字形变换
查看>>
[LeetCode javaScript]455. 分发饼干
查看>>
[LeetCode javaScript] 735. 行星碰撞
查看>>
[LeetCode javaScript] 125. 验证回文串
查看>>
[LeetCode javaScript] 226. 翻转二叉树
查看>>
[LeetCode javaScript] 520. 检测大写字母
查看>>
[LeetCode javaScript] 53.最大子序和
查看>>
[LeetCode javaScript] 101. 对称二叉树
查看>>
[LeetCode javaScript] 860. 柠檬水找零
查看>>
[LeetCode javaScript] 118. 杨辉三角
查看>>
[LeetCode javaScript] 905. 按奇偶校验排序数组
查看>>