ibatis mysql limit_mysql中ibatis的limit动态传参

本文探讨了在使用SQL Map时遇到的问题,解释了为何`limit`后面的参数不应使用`#`而是`$`。`#`将传入的数据视为字符串,可能导致SQL语句错误,而`$`直接将数值插入SQL中,但可能引发SQL注入风险。使用`$`通常适用于传入数据库对象,如表名。了解这些差异有助于避免潜在的安全问题。
摘要由CSDN通过智能技术生成

param.put("pageNo",pageNo);

param.put("pageSize",pageSize);

sqlMap中的用法

limit ${pageNo},${pageSize}

我今天在敲代码的时候这么用结果就报错了:limit #pageNo#,#pageSize#

后来查资料才知道

limit 后面不应该用#(我传进来的是Integer),而应该用$,

#与$的区别. (一般能用#的就别用$. )

#是把传入的数据当作字符串,如#pageNo#传入的是pageNo,则sql语句生成是这样,limit ‘pageNo‘,会报错.

$传入的数据直接生成在sql里,如#pageNo#传入的是pageNo,则sql语句生成是这样,

limit pageNo值,pageSize值

#方式能够很大程度防止sql注入. $方式无法防止sql注入.

$方式一般用于传入数据库对象.例如传入表名.

原文:http://www.cnblogs.com/likeju/p/4711436.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值