锁定老帖子 主题:【原创】iBatis分页查询的性能问题分析
精华帖 (0) :: 良好帖 (7) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-14
chenlixun 写道 首先肯定一下楼主的钻研精神,哈哈。
推荐动态生成SQL(应用基础组件)、数据库端分页。它们是性能的保障! 动态生成SQL的通用性好;数据库端分页的通用性差。 没看懂什么意思,呵呵。到底推荐哪一个? |
|
返回顶楼 | |
发表时间:2010-04-28
汗!
**ibatis原来是机械的next().之前还真没想过这样的问题,hibernate根据数据源做sql级别的优化看来是优越的,也许因为ibatis那些设计者想着能很灵活的支持sql,所以就懒得写了,呵呵。不过这种“偷懒”降低了移植性。 **至于ispring提出的安全控制,我怎么感觉说得跟这个是两码事了? |
|
返回顶楼 | |
发表时间:2010-05-17
ibatis在生产过程中使用一般是配合代码自动生成工具使用的,如果是手写代码,其ibatis的配置工作相当繁重,而且ibatis在数据库的兼容性方便做的不是很好,所以用ibatis做分页时,为了达到其性能优势,最好采用针对不同数据库的物理分页。
|
|
返回顶楼 | |
发表时间:2010-05-17
everher 写道 ibatis在生产过程中使用一般是配合代码自动生成工具使用的,如果是手写代码,其ibatis的配置工作相当繁重,而且ibatis在数据库的兼容性方便做的不是很好,所以用ibatis做分页时,为了达到其性能优势,最好采用针对不同数据库的物理分页。
能讲述下你关于“配置工作相当繁重”的理解么? |
|
返回顶楼 | |
发表时间:2010-05-26
第三种办法是弃用iBatis的分页查询方法queryForList(String sql,Object obj,int maxResult,int skipResult),而用普通查询方法,queryForList(String sql,Object obj)。只不过把maxResult和skipResult都作为obj的变量传到sql里去。如下:
<select id="queryAllUser" resultMap="user"> select * from (select row_.*, rownum rownum_ from (SELECT * FROM user_tab) row_ where rownum <= #_maxResult#) where rownum_ > #_skipResult# </select> ----------------------------------------- 这才是正解。 鄙人一般都这样分页。 这样分页估计和hibenate的性能没什么区别,并且还可以手动优化。 |
|
返回顶楼 | |
发表时间:2010-05-27
回楼上
貌似是parameterClass - -!! |
|
返回顶楼 | |