精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-08-24
在分页时,我想通过某一个配置好的查询,自己构造出一个诸如: select count(*) from Table where <cond>的语句,其中cond必须和已经配置好并动态生成的Where一致,只是想把前面的部分替换成count(*)以便得到查询的总记录数,不知可否通过iBatis的API动态在程序中生成,并执行,而不要一个查询语句配置一个对应的获取总数的配置项。 配置文件: 无 错误提示信息: 无 你的分析: 我个人觉得iBatis好象不能这么做,只得配置两个项,不知哪位高手用过,给我指点一下。不胜感激。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-08-24
同问。
我以前看iBatis API and Sample的时候,也有这样的疑惑。楼主也遇到了这样的疑问。 从常识看,iBatis API应该不至于如此愚蠢,应该有直接使用SQL String的API。 |
|
返回顶楼 | |
发表时间:2006-08-24
楼主说这个"$"符号吗?
select count(*) from Table where $cond$ 不知道是否理解正确 |
|
返回顶楼 | |
发表时间:2006-08-24
yfmine 写道 楼主说这个"$"符号吗?
select count(*) from Table where $cond$ 不知道是否理解正确 不是,我是说,假设有如下一个配置项: <select id="getAccountByUsername" resultMap="result"> select signon.username as userid, account.email, profile.mylistopt, profile.banneropt, bannerdata.bannername from account, profile, signon, bannerdata where account.userid = #value# and signon.username = account.userid and profile.userid = account.userid and profile.favcategory = bannerdata.favcategory </select> 如果我要获取该查询语句的结果集总行数,能否保持where后的条件不变(因为条件是运行期变化的),只将select 至from的部分替换成count(*)去查询,这样我就不用再配置一个获得结果总数的配置项了。 |
|
返回顶楼 | |
发表时间:2006-08-24
唉,这个问题好象有比较多人问过,好象一直没有看到好的解决方法,难道真的要配置一个专门负责获取总记录数的配置项吗?
|
|
返回顶楼 | |
发表时间:2006-08-24
以我对iBatis的了解,我确认没有。
其实要支持这个功能,其实有很多问题。 比如,按照楼主的意思,是想把Select子句换成Select Count( * )。那么你不妨写一个带有Group By子句的SQL试试,SQL的语义是错的。 还有一种稳妥的做法,是对整个SQL语句外面加Select Count( * ) From。但是这样的子查询对于有些数据库是不支持的,比如以前的MySQL4.0。 所以我想iBatis不支持这个功能可能也是基于上述的考虑吧。 |
|
返回顶楼 | |
发表时间:2006-08-31
downpour 写道 以我对iBatis的了解,我确认没有。
其实要支持这个功能,其实有很多问题。 比如,按照楼主的意思,是想把Select子句换成Select Count( * )。那么你不妨写一个带有Group By子句的SQL试试,SQL的语义是错的。 还有一种稳妥的做法,是对整个SQL语句外面加Select Count( * ) From。但是这样的子查询对于有些数据库是不支持的,比如以前的MySQL4.0。 所以我想iBatis不支持这个功能可能也是基于上述的考虑吧。 其实group by 本生就是分组查询的,如果加count(*)语法肯定是错误的,但是group by的这种查询可以单独拿出来考虑,在实际应用中,有更多的需求是要自动加count(*)的吧。 |
|
返回顶楼 | |
发表时间:2006-09-06
ibatis有个动态标签可以做判断的,我记得类似于if,我们这的人都这么些,楼主的问题没特明白但我觉得应该是拿if解决吧?-_-#
|
|
返回顶楼 | |
发表时间:2006-09-06
建议还是重新定义一个statment吧,如果你需要动态的生成select 中查询项,哪你的返回结果就不确定了。就只能指明map为返回结果。
对于调用端来说,还需要知道这个map究竟式返回的式对象的映射,还是查询的记录总数。 |
|
返回顶楼 | |
发表时间:2006-09-22
#include<> ibatis2里面好象有了和这个功能类似的一个标签了。这个应该就可以满足你的要求了吧。不过不要把它放在[[CDATA里面了哦。
|
|
返回顶楼 | |