mybatis 中 #{} 和 ${} 的不同之处

没有检索到摘要

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MyBatis 将 #{}编译成类似于 jdbc PreparedStatement   的参数标记,而将${} 直接编译成字符串。这对我们写出正确的MyBatis配置文件是非常有用的。

语言表达可能不是很清楚,下面看一个例子。

//这里是MyBatis配置文件里面的sql语句。
<select id="generalSelect" parameterType="map">
  select * from ${table} where col1 = #{criteria}
</select>


//准备参数

Map<String, Object> parms = new HashMap<String, Object>();
parms.put("table", "foo");
parms.put("criteria", 37);
List<Object> rows = mapper.generalSelect(parms);

//调用

generalSelect(params);

//在执行过程中,MyBatis 会将定义的sql语句编译成下面的形式

select * from foo where col1 = ?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值