码迷,mamicode.com
首页 > 其他好文 > 详细

MyBatis中#{ }和${ }的区别(笔面试题)

时间:2018-09-11 16:27:01      阅读:334      评论:0      收藏:0      [点我收藏+]

标签:一个   style   数据库对象   tis   解决   ati   margin   fan   自动   

MyBatis中#{ }和${ }的区别详解

1.#将传入的数据当成一个字符串,会对自动传入的数据加一个

双引号。

例如order by #id#,如果传入的值是111,那么解析成sql时变为order by “111”,如果传入的值是id,在解析成sql为order by “id”.

其实原来sql语句通常写成order by #{id} 与order by #id#的效果

一样。

 

2.$将传入的数据直接显示在sql语句中。例如order by${id},如果

传入的值则解析成sql语句为order by 9

 

3.#方式能够很大程度上防止sql注入,而$无法防止sql注入,

$一般用于传入数据库对象,例如传入表名,

一般能用#就别用$

 

4.mybatis排序是用order by动态参数时需要注意,用$而不是用

#。

 

 

5.查询语句使用别名来解决,#{ }是spring表达式,${ }是el表达式。

MyBatis中#{ }和${ }的区别(笔面试题)

标签:一个   style   数据库对象   tis   解决   ati   margin   fan   自动   

原文地址:https://www.cnblogs.com/shijinglu2018/p/9627712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!