ibaits遇到的一个问题

本文讨论了在使用ibatis框架时,SQLServer数据库中使用#和$符号作为参数占位符的区别。作者尝试根据文章类别获取文章列表,并设置了显示条数限制,但在SQL语句中使用#num#的方式未能生效,改为$num$后问题解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      今天在做项目时,碰到一个奇怪的问题。实现的功能是根据文章类别获取前台需要的文章List,因为考虑到前台显示标题的条数,所以除了文章类别ID,还传了一个数值(最多显示的条数)过去,封装到map里面。

      ibatis的配置文件写了对应的sql语句,用到的数据库是sqlserver,所以sql语句如下:

 

select top #num# * from (表名) where typeid=#type# order by Create_Date desc;
     

      这样居然不行,后来问了同事,他说这样是不可以,写成$num$,这样就OK了。

      他给我的解释是“这个$能不用尽量不要用你就这样理解#的自动给你加引号,$不会加引号“,听上去似乎有理,当时我也接受了。后来想想不对劲,因为以前写过类似的SQL,只不过用的是mysql的数据库,那句sql最后是limit #num#,num是传过去的参数,如果按照同事的解释,那岂不是以前的写法也错了吗?

      请知道的朋友告诉我一下,感激不尽!其实我现在的想法是这样的,可能在where之前用#会有问题,用$就没问题,不知道对不对。

转载于:https://www.cnblogs.com/Henry_zp/archive/2010/12/03/1895822.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值