ibaits遇到的一个问题

      今天在做项目时,碰到一个奇怪的问题。实现的功能是根据文章类别获取前台需要的文章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之前用#会有问题,用$就没问题,不知道对不对。

posted on 2010-12-03 21:00  大空翼  阅读(319)  评论(0编辑  收藏  举报

导航