在Java和mybatis中#{}与${}的区别

67 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

#号采用的是占位符,也就是JDBC中的预处理语句,sql语句已经定死,只是参数没有定死,会根据用户传递的id进行查询。 在这里插入图片描述

$号采用的字符串拼接,参数注入的时候,把sql语句看成一个字符串,参数也是一个字符串,那么这个时候,第一个字符串已经定死,==但是后面的字符串我可以随意添加数据或者拼接一个别的字符串例如"1 or id=2";== 那么这个时候原来的 sql 语句就变为了 select * from tb_brand where id=1 or id=2 在这里插入图片描述