默认情况下,使用 #{} 参数语法时,MyBatis 会创建 PreparedStatement 参数占位符,并通过占位符安全地设置参数(就像使用 ? 一样)。 这样做更安全,更迅速,通常也是首选做法。
INSERT INTO user (name) VALUES (#{name});
<!--相当于-->
INSERT INTO user (name) VALUES (?);
${} 的作用是直接进行字符串拼接
INSERT INTO user (name) VALUES (${name});
<!--相当于-->
INSERT INTO user (name) VALUES ('lisi');