`

使用iBatis和ObjectDataSource轻松实现分页

阅读更多

ObjectDataSource 控件内置了对分页的支持。我们需要设置 ObjectDataSource EnablePaging属性,然后要设置SelectMethodSelectCountMethod StartRowIndexParameterNameMaximumRowsParameterName 属性。当 EnablePaging 属性设置为 true 时,SelectParameters 集合包含两个额外的参数,一个用于请求的第一行,另一个用于请求的行数。这两个参数的名称由StartRowIndexParameterName MaximumRowsParameterName 属性定义。SelectMethod应该返回从指定的索引处开始的请求的行数。因为数据可能不是按页大小平均分割的,所以最后一页可能包含较少的行。因此,请求的行数实际上是返回的最大行数。


上面提及的后四个属性的含义很容易理解,简单的说,我们要实现两个方法,一个是返回总的记录数(
SelectCountMethod),一个则返回当前请求页的记录(SelectMethod),SelectMethod方法至少要包含两个参数,以指定欲请求记录的起始索引和欲返回的最大行数。


SelectCountMethod
一般容易实现。而SelectMethod则比较麻烦,常见的解决方案是存储过程,这样的存储过程通常与特定表紧密耦合,难以通用。


使用
iBatis时,我们通过ISqlMapper接口来访问数据库。其中的一个方法相当有用:

<!---->IList<T> QueryForList<T>(string statementName, object parameterObject, int skipResults, int maxResults);


前两个参数作查询之用,而后两个参数则与
ObjectDataSourceStartRowIndexParameterName MaximumRowsParameterName 属性的设计不谋而合!


这样一来,我们就可以只关注查询本身了,把分页功能交由
iBatisObjectDataSource来打理。最重要的是,这个方法相当通用,也不需对查询语句作额外的处理。


我的测试数据为
20万条,翻页所需时间在0.7秒左右,效果很不错了,大家有兴趣可以尝试下。



分享到:
评论

相关推荐

    ibatis 之分页

    在分页查询方面,Ibatis允许我们在SQL语句中直接添加LIMIT和OFFSET子句,或者使用自定义的分页插件来实现。 1. **SQL映射分页**:在Ibatis的XML配置文件中,我们可以直接编写包含分页条件的SQL语句。例如,对于...

    修改ibatis源代码实现物理分页

    Ibatis,作为一款轻量级的Java持久层框架,虽然功能强大,但在默认情况下,其分页方式是逻辑分页,即先查询所有数据,然后在应用程序层面进行分页处理,这种方式对于大数据量的查询来说,无疑会消耗大量的内存和CPU...

    ibatis实现分页技术

    在Java Web开发中,Ibatis作为一个轻量级的持久层框架,被广泛应用于数据库操作。...如果配合使用分页插件,如PageHelper,将使分页操作更加便捷。在实际项目中,应根据数据库类型和需求选择合适的分页实现方式。

    struts2+spring+ibatis+oracle+分页搜索+上传附件实例

    Struts2的拦截器机制使得分页和搜索功能得以实现,通过配置拦截器,可以处理请求参数,实现动态的页面跳转和数据检索。 2. **Spring**:Spring框架提供了依赖注入(DI)和面向切面编程(AOP)等功能,帮助开发者管理...

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    Ibatis 2.3.4 数据库无关分页

    在2.3.4这个版本中,Ibatis 提供了数据库无关的分页功能,这是一种在不依赖特定数据库语法的情况下实现分页查询的方法,有助于提高代码的可移植性和维护性。 数据库无关分页的核心思想是将分页参数(如当前页数和每...

    spring+ibatis+jsp集成实现数据库查询分页

    本教程将深入探讨如何使用Spring、iBatis和JSP这三个组件来集成实现数据库查询和分页功能。这三个技术结合,能够构建出高效、灵活且易于维护的数据访问层。 首先,Spring是一个开源的应用框架,提供依赖注入(DI)...

    ibatis_likehbm高效分页组件

    ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件 ibatis_likehbm高效分页组件 ibatis_likehbm...

    ibatis分页

    标题中的“ibatis分页”指的是在使用iBATIS(一个SQL映射框架)时,如何实现数据库查询结果的分页显示。iBATIS通过XML配置文件或注解方式将Java代码与SQL语句分离,提供了更灵活的数据库操作方式。在处理大量数据时...

    例1:struts2+spring+ibatis 实现分页

    以上就是使用Struts2、Spring和iBatis实现分页功能的基本流程。在实际开发中,你还需要考虑异常处理、国际化、性能优化等方面,确保应用的稳定性和用户体验。通过熟练掌握这三个框架的组合,你可以构建出强大且灵活...

    对IBatis分页的改进,使ibatis支持hibernate式的物理分页

    公司的大部分项目都开始使用IBatis作为O/R Mapping了,但是在使用的过程中也发现了很多不方便和存在争议的地方,其中一个不方便的地方就是分页,目前的处理方式都是在sqlMap中写针对特定数据库的物理分页Sql语句,对于...

    ibatis物理分页jar

    ibatis 物理分页jar ,与官方ibatis不冲突,可直接使用。

    基于ibatis的分页

    在这个分页项目中,JSP页面已经预设好了如何使用分页标签来显示数据和分页导航。开发者只需按照规定的标签格式,即可轻松实现动态分页效果。 总结来说,这个基于ibatis的分页项目提供了一套完整的解决方案,从...

    Ibatis.net 分页

    3. **使用Ibatis.NET提供的扩展分页库**:有些社区开发了针对Ibatis.NET的扩展库,如MyBatis.Impl.Pager,它提供了一个方便的分页助手类,可以简化分页查询的实现。你需要在项目中引用这个库,然后在业务逻辑层调用...

    spring3.0.3+ibatis2.3.4.7分页

    3. **动态SQL**:在iBATIS的Mapper XML文件中,编写包含分页逻辑的SQL语句,使用`&lt;if&gt;`、`&lt;choose&gt;`等标签来动态拼接LIMIT和OFFSET子句,实现分页查询。 4. **Mapper接口**:在DAO层,定义一个返回分页结果的方法,...

    Ibatis SQLServerDialect 2008 分页

    Ibatis SQLServerDialect 2008 分页 可实现SQLServerDialect 分页 支持ibatis3

    ibatis分页功能

    标签"分页 pagination ibatis"明确了我们要讨论的是与分页和iBATIS相关的知识点。 在`ibatis_pagination`这个压缩包中,可能包含了以下内容: 1. iBATIS配置文件(`sqlmapconfig.xml`):可能已经配置了数据源、...

    SSI整合,有ibatis连接oracle的分页,ajax等技术

    开发者可能在Web服务器上配置了SSI支持,同时在后端设置了Ibatis与Oracle数据库的连接,前端使用JavaScript和AJAX来与后端进行交互,实现动态加载分页数据。 从"压缩包子文件的文件名称列表"来看,虽然具体文件内容...

    spring+ibatis+oracle分页缓存源码

    总的来说,"spring+ibatis+oracle分页缓存源码"项目展示了如何在Spring管理的环境中,利用iBatis和Oracle数据库实现高效的数据分页和缓存策略。通过理解和实践这些技术,开发者可以构建出更加健壮、响应快速的Web...

    ibatis mybatis 分页 crud 完整代码

    压缩包中的"books"可能是一个示例项目,包含了使用Ibatis和Mybatis进行CRUD和分页操作的代码实例。通过阅读和分析这些代码,开发者可以更深入地理解如何在实际项目中应用这两个框架。 总的来说,这份资源对于学习...

Global site tag (gtag.js) - Google Analytics