mybatis分页实现2
前一篇写了如何实现sql分页
http://icefire.iteye.com/blogs/1028915
PaginationMapperProxy
PaginationMapperMethod
具体某个查询的SQL配置
补代码Pagination,分页辅助类public class Pagination<T> {private long total;private int pagesize;private List<T> list = Collections.emptyList();private int offset;private int limit;private int page;public Pagination() {this(1, 15);}public Pagination(int page) {this(page, 15);}public Pagination(int page, int limit) {setPage(page);setLimit(limit);}public Pagination(RowBounds rowBounds) {this.limit = rowBounds.getLimit();this.offset = rowBounds.getOffset();this.page = offset / limit + 1;}public void setPage(int page) {if (page < 0) {page = 1;}this.page = page;onInit();}public void setLimit(int limit) {if (limit < 1) {limit = 15;}this.limit = limit;onInit();}protected void onInit() {offset = (page - 1) * limit;}protected void onSetRowsize() {pagesize = (int) (total / limit);if (total % limit > 0) {pagesize ++;}if (page > pagesize) {page = pagesize;onInit();}}protected void onSetList() {if (list == null || list.isEmpty()) {total = 0;page = 1;offset = 0;}}public long getTotal() {return total;}public void setTotal(long rowsize) {this.total = rowsize;onSetRowsize();}public int getPagesize() {return pagesize;}public List<T> getList() {return list;}public void setList(List<T> list) {this.list = list;onSetList();}public int getOffset() {return offset;}public int getLimit() {return limit;}public int getPage() {return page;}public RowBounds newRowBounds() {return new RowBounds(getOffset(), getLimit());}}
目前无可避免的需要两段sql。在考虑如何实现自动生成count(*),但目前做到这样,已经达到自己的预期了。暂时先就这样吧! 1 楼 guoyi_20082008 2011-10-14 也按照此方式实现,但发现缺少Pagination类的代码,不知能否附上,谢谢 2 楼 kelor 2011-11-25 看了下源代码,在创建sessionFactory,session对象的时候传入的参数都是Configuration。
如果要用自己的Configuration。是不是也要扩展下XMLConfigBuilder,使用自定义的Configuration来初始化configuration属性? 3 楼 icefire 2011-11-29 kelor 写道看了下源代码,在创建sessionFactory,session对象的时候传入的参数都是Configuration。
如果要用自己的Configuration。是不是也要扩展下XMLConfigBuilder,使用自定义的Configuration来初始化configuration属性?
不知道你的需求是怎样的,如果用spring,就没必要用xml来初始化Configuration了。如果是xml要增加自己的属性,可能需要扩展XMLConfigBuilder吧,具体没研究过了。我使用自己的Configuration是因为我要替换其中的属性,Configuration又没提供set方法,所以别无选择。
4 楼 mygia 2012-08-23 学习一下!