Mybatis中的${}和#{}使用场合
时间: 2023-11-01 10:58:29 浏览: 87
MyBatis 27道面试题和答案.docx
在MyBatis中,${}和#{}是用来替换SQL语句中的参数的。它们的使用场合略有不同。
${}是字符串替换,当MyBatis处理${}时,它会将SQL中的${}替换为变量的值,传入的数据不会加两边加上单引号。这种情况适用于需要动态拼接SQL语句的场景,比如动态指定表名或列名。
#{}是预编译处理,当MyBatis处理#{}时,它会将SQL中的#{}替换为?,然后调用PreparedStatement的set方法来赋值。传入的字符串会在值两边加上单引号,以确保安全性和正确性。这种情况适用于需要传入参数并进行预编译的场景,比如查询条件中的参数。
总结起来,${}适用于动态拼接SQL语句的场景,而#{}适用于传入参数并进行预编译的场景。在使用时,我们需要根据具体的需求选择合适的方式来处理参数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Mybatis 中 $ 和 #千万不要乱用](https://blog.csdn.net/wyouwd1/article/details/126130428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Mybatis系列:Mybatis中 $ 和 # 千万不要乱用!](https://blog.csdn.net/Mrs_chens/article/details/90403648)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文