代码拉取完成,页面将自动刷新
同步操作将从 MagiCodeX/resultbounds 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
以简单的方式提供一个优雅的 MyBatis 物理分页功能,不需要修改代码就可以把默认的分页换成物理分页。目前该插件的实现只有几个类并且加了注释,对想了解 MyBatis 分页插件的以及想自己实现一个的,自认为还是挺值得参考的。
MyBatis 3.4: 支持 (在 MyBatis-3.4.4 版本下测试通过)
MyBatis 3.3: 支持 (在 MyBatis-3.3.1 版本下测试通过)
MyBatis 3.2: 支持 (在 MyBatis-3.2.8 版本下测试通过)
MyBatis 3.1: 支持 (在 MyBatis-3.1.1 版本下测试通过)
MyBatis 3.0: 不支持(在 MyBatis-3.0.6 版本下测试失败)
MyBatis 2.3: 不支持(在 MyBatis-2.3.5 版本下测试失败)
<configuration>
...
<plugins>
<plugin interceptor="com.garbagecode.resultbounds.PaginationInterceptor">
<!-- 可以把 value 属性值替换成自己实现的 Dialect -->
<property name="dialect" value="com.garbagecode.resultbounds.dialect.MySqlDialect" />
</plugin>
</plugins>
...
</configuration>
// 示例一
// 获取 SqlSession 对象
SqlSession session = ...
// 从第 4 条开始,取 5 条记录
List<Student> studentList = session.selectList("test.student.getStudentList", null, new RowBounds(3, 5));
// 示例二
// 获取 SqlSession 对象
SqlSession session = ...
// 从第 4 条开始,取 5 条记录
List<Student> studentList = session.getMapper(StudentMapper.class).getStudentList(new RowBounds(3, 5));
// 示例一
// 获取 SqlSession 对象
SqlSession session = ...
// 设置分页参数从第 4 条开始,取 5 条记录
ResultBounds resultBounds = new ResultBounds(3, 5);
// 获取分页后的查询结果
List<Student> studentList = session.selectList("test.student.getStudentList", null, resultBounds);
// 获取记录总数
long total = resultBounds.getTotal(session);
// 示例二
// 获取 SqlSession 对象
SqlSession session = ...
// 设置分页参数从第 4 条开始,取 5 条记录
ResultBounds resultBounds = new ResultBounds(3, 5);
// 获取分页后的查询结果
List<Student> studentList = session.getMapper(StudentMapper.class).getStudentList(resultBounds);
// 获取记录总数
long total = resultBounds.getTotal(session);
在 MyBatis 配置文件中加上该插件的 Spring 版本
<configuration>
...
<plugins>
<plugin interceptor="com.garbagecode.resultbounds.spring.TotalCountBeanInterceptor">
<property name="dialect" value="com.garbagecode.resultbounds.dialect.MySqlDialect" />
</plugin>
</plugins>
...
</configuration>
在 Spring 配置文件中加上这个
...
<bean class="com.garbagecode.resultbounds.spring.TotalCountBean">
<property name="sqlSession" ref="sqlSession" />
</bean>
...
使用该插件的 Spring 版本后
...
// 获取记录总数
// 调用 ResultBounds.getTotal 方法的时候不需要给 SqlSession 参数了
long total = resultBounds.getTotal(null);
...
---- dialect
|---- Dialect 生成分页语句、统计记录总数语句的接口
|---- MySqlDialect Dialect 接口的 MySql 实现
---- spring
|---- TotalCountBean
|---- TotalCountBeanInterceptor 这插件的 spring 版本
---- MyBatisClassCreator 创建 MyBatis 中的类,在 PaginationInterceptor 中需要用它对参数动些手脚
---- PaginationInterceptor 分页的主逻辑在这个类里
---- ResultBounds RowBounds 的子类,加了一些实用的方法
---- TotalCount 用来统计记录总数
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。