Mybatis之mapper文件方法标签中# $用法的区别

 

简单来说 #{} 会在将参数加上引号,例如:

SELECT * FROM user WHERE username=#{username} ;

带上参数后的SQL语句即:

 

SELECT * FROM user WHERE username="XuLiTong" ;

而${}并不会在给参数加上引号,例如:

 

SELECT * FROM user ORDER BY ${id} DESC LIMIT ${offset},${limit};

带上参数后的SQL语句为:

 

SELECT * FROM user ORDER BY id DESC LIMIT 0,10;

可见,mybatis对参数没有进行任何的处理。通常${}用于GROUP BY,ORDER BY ,LIMIT等的后面。

 

但是,实际应用中,并不提倡使用 ${},因为使用 #{} 写法,除了可以防止sql注入以外,还能在参数里含有单引号的时候自动转义。

猜你喜欢

转载自blog.csdn.net/weixin_38753309/article/details/84829488
今日推荐