net.sourceforge.orm.mybatis.Page Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jweb-common Show documentation
Show all versions of jweb-common Show documentation
本项目主要弥补在使用mybatis3+springmvc+jquery easyui快速搭建web应用系统是遇到的框架不足.
主要工作包括:
1,扩展了ApplicationContextAware,通过单例注入spring容器,提供spring容器外的bean获取方法
2,扩展了apache shiro框架,统一了安全结构
3,扩展了mybatis3拦截器,在两个拦截器中自动完成分页注入,实现内存分页。
4,分页设计数据库方言
5,提供了一个easyuigrid的模型
6,提供了java泛型的jstl
7, xml工具包等一些小工具
The newest version!
package net.sourceforge.orm.mybatis;
import java.util.ArrayList;
import java.util.List;
import org.apache.ibatis.session.RowBounds;
/**
* Mybatis分页参数及查询结果封装. 注意所有序号从1开始.
*
* @param
* Page中记录的类型.
* @author [email protected]
**/
public class Page extends RowBounds {
// --分页参数 --//
/**
* 页编号 : 第几页
*/
protected int pageNo = 1;
/**
* 页大小 : 每页的数量
*/
protected int pageSize = 15;
/**
* 偏移量 : 第一条数据在表中的位置
*/
protected int offset;
/**
* 限定数 : 每页的数量
*/
protected int limit;
// --结果 --//
/**
* 查询结果
*/
protected List result = new ArrayList();
/**
* 总条数
*/
protected int totalCount;
/**
* 总页数
*/
protected int totalPages;
// --计算 数据库 查询的参数 : LIMIT 3, 3; LIMIT offset, limit; --//
/**
* 计算偏移量
*/
private void calcOffset() {
this.offset = ((pageNo - 1) * pageSize);
}
/**
* 计算限定数
*/
private void calcLimit() {
this.limit = pageSize;
}
// -- 构造函数 --//
public Page() {
this.calcOffset();
this.calcLimit();
}
public Page(int pageNo, int pageSize) {
this.pageNo = pageNo;
this.pageSize = pageSize;
this.calcOffset();
this.calcLimit();
}
// -- 访问查询参数函数 --//
/**
* 获得当前页的页号,序号从1开始,默认为1.
*/
public int getPageNo() {
return pageNo;
}
/**
* 获得每页的记录数量,默认为1.
*/
public int getPageSize() {
return pageSize;
}
/**
* 根据pageNo和pageSize计算当前页第一条记录在总结果集中的位置,序号从1开始.
*/
public int getFirst() {
return ((pageNo - 1) * pageSize) + 1;
}
/**
* 根据pageNo和pageSize计算当前页第一条记录在总结果集中的位置,序号从0开始.
*/
public int getOffset() {
return offset;
}
public int getLimit() {
return limit;
}
// -- 访问查询结果函数 --//
/**
* 取得页内的记录列表.
*/
public List getResult() {
return result;
}
/**
* 设置页内的记录列表.
*/
public void setResult(final List result) {
this.result = result;
}
/**
* 取得总记录数, 默认值为-1.
*/
public int getTotalCount() {
return totalCount;
}
/**
* 设置总记录数.
*/
public void setTotalCount(final int totalCount) {
this.totalCount = totalCount;
this.totalPages = this.getTotalPages();
}
/**
* 根据pageSize与totalCount计算总页数, 默认值为-1.
*/
public int getTotalPages() {
if (totalCount < 0) {
return -1;
}
int pages = totalCount / pageSize;
return totalCount % pageSize > 0 ? ++pages : pages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
}