mybatis limit #{}

learningcsdn 2016-11-08 06:48:11
今天看到网上讨论 mybatis #和$的区别
1、区别
1)#{}相当于jdbc中的preparedstatement
#{}是经过预编译的,是安全的,而${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在sql注入.
2)${}是输出变量的值
${}的情况,order by是肯定只能用${}了,用#{}会多个' '导致sql语句失效.此外还有一个like 语句后也需要用${}

2、order by后面如果采用预编译的形式动态输入参数,那么实际插入的参数是一个字符串,例子中是:order by 'domain_id'


看到这些讲解后,有一个疑惑,为什么limit 用#{} 可以? 烦请高手讲解
...全文
1067 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 1
同求,我注意到一点,如果是直接使用字段,用的$,如果用对象.字段用的#
卖水果的net 2016-11-09
  • 打赏
  • 举报
回复
-- 建议写成这个形式,即指明 类型; where id= #{id,jdbcType=VARCHAR} limit 后跟整型,如果不是数值型,会自动转化为数值型

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧