#{变量名} 是预处理替换的⽅式,本质是 jdbc 中占位符的替换。如传⼊字符串,会替换为带单引号的值。可以安全性更好,${变量名} 是字符串的替换,只是对 sql 字符串进⾏拼接。如传⼊字符串,会直接替换为字符串的值,不加单引号。 #的⽅式可以很⼤程度的防⽌ sql 注⼊,相对来说更安全。⽽$的⽅式不能。