例如:
select * from user where id in ( #{ids} );
假如参数 ids 为 11,14,189,202,227,242
则 mybatis 转换 sql 时,会变成一个整体参数, 如下:
select * from user where id in ( '11,14,189,202,227,242' );
正确的 写法应该是:
select * from user where id in ( ${ids} );
则 mybatis 正常转换
select * from user where id in ( 11,14,189,202,227,242);
备注说明:
当参数采用:
#{} : 一个 #{ } 被解析为一个参数占位符 。
${}: 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换。
注意:
使用 ${ }的时候,dao 接口, 既使一个参数,也要写 @Param 注解
public List<User> delete(@Param("ids") String ids);
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于