Mybatis的mapper文件中$和#的用法及区别详解
程序员文章站
2024-02-02 10:04:22
用了一段时间的mybatis了,对于$和#的用法老是很迷糊,特此记下加深记忆。
简单来说 #{} 会在将参数加上引号,例如:
select * from user where username=#{...
用了一段时间的mybatis了,对于$和#的用法老是很迷糊,特此记下加深记忆。
简单来说 #{} 会在将参数加上引号,例如:
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注入以外,还能在参数里含有单引号的时候自动转义。
上一篇: Python实现的拉格朗日插值法示例
下一篇: ps初学者第九课 白话通道
推荐阅读
-
Mybatis的mapper文件中$和#的用法及区别详解
-
JavaScript中的普通函数和箭头函数的区别和用法详解
-
php:switch case 和 if else 的用法区别及运行效率详解
-
详解PHP中cookie和session的区别及cookie和session用法小结,cookiesession
-
php:switch case 和 if else 的用法区别及运行效率详解
-
jquery中attr和prop的区别实例用法详解
-
SQL中distinct 和 row_number() over() 的区别及用法
-
Mybatis的mapper文件中$和#的用法及区别详解
-
MySQL中datetime和timestamp的区别及使用详解
-
SQL中distinct 和 row_number() over() 的区别及用法