首先要了解两者区别:
select * from user where name = #{name}被解析为select * from user where name = ?
可以看到#{}是作为一个参数占位符被使用。
而¥{}则是直接字符拼接:
select * from user where name = ${name};
当我们传递参数“sprite”时,sql会解析为:select * from user where name = "sprite";
下面有两个实例:
@Select("SELECT segment.id,segment.`length`,segment.`start_number`,segment.`end_number`
,spot_all1.`name`AS s_name,spot_all2.`name` AS e_name FROM ${bus_name},segment,
spot_all1,spot_all2 n" +
" WHERe segment.`start_number`=spot_all1.`spot_number` AND segment.`end_number`=spot_all2.`spot_number` AND ${bus_name}.`seg_id`=segment.`id` GROUP BY ${bus_name}.`seg_id`")
//以上是sql语句
List bus_reTm_info(@Param("bus_name") String bus_name);
用完记得感谢蔡哥!
该文章借鉴与:Mybatis 将table表名作为参数传入操作 / 张生荣



