分页技术
来源:互联网 发布:琼瑶毁三观台词 知乎 编辑:程序博客网 时间:2024/06/05 18:51
UsersDAO
oracle实现
public class UsersDAO {private JDBCTemplate template;public UsersDAO() {template = new JDBCTemplate() {@Overrideprotected RowMapper getRowMapper() {// TODO Auto-generated method stubreturn new UsersMapper();}};}//分页查询public PageModel<UserBean> getScrollData(int currentPage, int pageSize ){StringBuffer sbSql = new StringBuffer();sbSql.append("select * ").append("from (").append("select i.*, rownum rn from (").append("select u.id, u.username, u.password, u.age ").append("from users u").append(" order by u.id").append(") i where rownum<=? ").append(") ").append("where rn >? ");System.out.println("sql=" + sbSql.toString());Object[] params = new Object[2];PageModel<UserBean> pageModel= null;params[0]=currentPage * pageSize;params[1]=(currentPage - 1) * pageSize;List userList =template.query(sbSql.toString(), params);pageModel = new PageModel<UserBean>();pageModel.setList(userList);pageModel.setTotalRecords(getTotalRecords());pageModel.setPageNo(currentPage);pageModel.setPageSize(pageSize); return pageModel;}//获得用户总记录数public int getTotalRecords() {String sql = "select count(*) from users";Object[] params = new Object[0];int result = template.selectCount(sql, params);return result;}}
select * from (select p.*,rownum rn from T_CHK_LOOK_PLAN p where rownum <= sizePage*nowPage)
where rn >=(sizePage*(nowPage-1))+1;
mysql实现
public class UsersDAO {private JDBCTemplate template;public UsersDAO() {template = new JDBCTemplate() {@Overrideprotected RowMapper getRowMapper() {// TODO Auto-generated method stubreturn new UsersMapper();}};}//分页查询public PageModel<UserBean> getScrollData(int currentPage, int pageSize ){String sql = "select * from users limit ?,?";Object[] params = new Object[2];PageModel<UserBean> pageModel = null;params[0]=(currentPage - 1) * pageSize;params[1]=pageSize;List userList =template.query(sql, params);pageModel = new PageModel<UserBean>();pageModel.setList(userList);pageModel.setTotalRecords(getTotalRecords());pageModel.setPageNo(currentPage);pageModel.setPageSize(pageSize); return pageModel;}//获得用户总记录数public int getTotalRecords() {String sql = "select count(*) from users";Object[] params = new Object[0];int result = template.selectCount(sql, params);return result;}}
/**
* 封装分页逻辑
* @author Administrator
*
*/
public class PageModel<T> {//结果集private List<T> list;//记录数private int totalRecords;//每页多少条数据private int pageSize;//第几页private int pageNo;/** * 返回总页数 * @return */public int getTotalPages() {return (totalRecords + pageSize - 1) / pageSize;}/** * 首页 * @return */public int getTopPageNo() {return 1;}/** * 上一页 * @return */public int getPreviousPageNo() {if (this.pageNo <= 1) {return 1;}return this.pageNo - 1;}/** * 下一页 * @return */public int getNextPageNo() {if (this.pageNo >= getButtomPageNo()) {return getButtomPageNo();}return this.pageNo + 1;}/** * 尾页 * @return */public int getButtomPageNo() {return getTotalPages();}public List<T> getList() {return list;}public void setList(List<T> list) {this.list = list;}public int getTotalRecords() {return totalRecords;}public void setTotalRecords(int totalRecords) {this.totalRecords = totalRecords;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getPageNo() {return pageNo;}public void setPageNo(int pageNo) {this.pageNo = pageNo;}}
/**
* 用户管理类
* @author qiutao
*/
public class UserManager { /** 用户管理 DAO */ private UsersDAO userDAO = new UsersDAO(); /** * 得到用户总数 * @return 用户记录总数 */ public int getUserTotalCount(){ return userDAO.getTotalRecords(); } /** * 获取总页面数. * * @param pageSize * 一页显示数据量 * @return 页面总数 */ public int getTotalPage(int pageSize) { int totalCount = userDAO.getTotalRecords(); // 得到页面总数 int totalPageCount = ((totalCount + pageSize) - 1) / pageSize; return totalPageCount; } /** * 分页显示用户数据. * @param currentPage 当前页码, 从 1 开始 * @param pageSize 每页显示数据量 * @return 用户数据 */ public PageModel<UserBean> findPagedAll(int currentPage, int pageSize) { return userDAO.getScrollData(currentPage, pageSize); } public static void main(String[] args) { PageModel<UserBean> pageModel=new UserManager().findPagedAll(1, 3); for (UserBean user : pageModel.getList()) { System.out.println(user.getUsername()); } } }
- 分页技术
- 分页技术
- 分页技术
- 分页技术
- 分页技术
- 分页技术
- 分页技术
- 分页技术:
- 分页技术
- 分页技术
- 分页技术
- 分页技术
- 分页技术
- 分页技术
- 分页技术
- 分页技术
- 分页技术
- 分页技术
- 黑马程序员-Java高新
- 分布式服务框架 Zookeeper
- 黑马程序员——java流程控制与函数
- cpanel pop3s 不能收信
- 网页爬虫抓取URL
- 分页技术
- 将自已的程序加到鼠标右键菜单里
- linux文件操作
- 堆和栈的区别 (转贴)
- 黑马程序员-Java模拟交通灯
- 黑马程序员-Java模拟银行业务
- [C++]vector的存储方式和自增长问题
- UVA 11549 Calculator Conundrum
- QT4.8.1和Qt4.8.4编译X86出错:/usr/include/linux/futex.h:96: 错误:‘u32’ 在此作用域中尚未声明