说一下mybatis里面#{}和${}的区别

面试

#{}:把值当"参数"传进去

xml 复制代码
where name = #{name}
and age = #{age}

${}:把值当"SQL 代码片段"拼进去

xml 复制代码
select * from ${tableName}

但是使用${}要注意sql注入的问题,就是用户的输入可能会被当做程序代码去执行。

相关推荐
CoderYanger4 分钟前
A.每日一题:1979. 找出数组的最大公约数
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
灵极海12 分钟前
LangChain4j RAG 实战完整指南:从入门到踩坑
java·langchain
yaoxin52112313 分钟前
476. Java 反射 - 调用方法
java·开发语言
wear工程师1 小时前
WebFlux 里能不能直接 block?面试别只答「不能」
spring
Ivanqhz1 小时前
Rust Lazy浅析
java·javascript·rust
bksczm1 小时前
Linux之日志和线程池、内存池
java·开发语言
笨蛋不要掉眼泪2 小时前
Java虚拟机:对象复活、引用强度与Stop-The-World
java·开发语言·jvm
凤山老林2 小时前
SpringBoot实战:构建优雅的全局异常处理机制
java·springboot·异常处理
小Ti客栈2 小时前
Spring Boot 整合 Swagger2 和 Knife4j实现接口文档与可视化调试
java·spring boot·后端
梅头脑2 小时前
ThreadLocalMap里几十万个死Entry——排查了半天OOM,根因就一行finally没写
java