分页查询案例

分页查询

---CONTROLLER---

/**

* 分页查询所有成员。

* @param page

* @param request

* @return

*/

@RequestMapping("/allStaff.do")

public String getAllStaff(String page,HttpServletRequest request)

{

if(page ==null)

{

page = 1+"";

}

request.setAttribute("page", page);

request.setAttribute("pageNum",staffService.getPageNum());

request.setAttribute("staffList", staffService.allStaff(page));

return "/allStaff.do";

}

/**

* 分页查询下一页

* @param page

* @param request

* @return

*/

@RequestMapping("/nextPage.do")

public String nextPage(String page,HttpServletRequest request){

int curPage = Integer.parseInt(page);

request.setAttribute("page", curPage+1);

request.setAttribute("pageNum",staffService.getPageNum());

request.setAttribute("staffList", staffService.allStaff(curPage+1+""));

return "/allStaff.do";

}

/**

* 分页查询前一页

* @param page

* @param request

* @return

*/

@RequestMapping("/prevPage.do")

public String prevPage(String page,HttpServletRequest request){

int curPage = Integer.parseInt(page);

request.setAttribute("page", curPage-1);

request.setAttribute("pageNum",staffService.getPageNum());

request.setAttribute("staffList", staffService.allStaff(curPage-1+""));

return "/allStaff.do";

}

---Action---

/**

* 分页查询成员信息

* @param page

* @return

*/

public List<Staff> allStaff(String page);

/**

* 获得页码。

* @return

*/

public int getPageNum();

/**

* 分页查询成员信息

* @param page

* @return

*/

public List<Staff> allStaff(String page){

return staffDao.allStaff(page);

}

/**

* 获得页码。

* @return

*/

public int getPageNum(){

return staffDao.getPageNum();

}

----DAO---

public int getPageNum();

public List<Staff> allStaff(String page) ;

/**

* 得到员工页面总页码信息。

*/

public int getPageNum()

{

String hql="from Staff";

Query query = sessionFactory.getCurrentSession().createQuery(hql);

int temp = query.list().size()/pageSize;//size=10

if(query.list().size()%pageSize !=0)

{

temp++;

}

return temp;

}

/**

* 分页获取所有员工,第一页的。

*/

public List<Staff> allStaff(String page)

{

String hql="from Staff";

Query query = sessionFactory.getCurrentSession().createQuery(hql);

query.setFirstResult((Integer.parseInt(page)-1)*pageSize);

query.setMaxResults(pageSize);

return query.list();

}

来自为知笔记(Wiz)

时间: 2024-09-30 19:10:32

分页查询案例的相关文章

使用JDBC连接MySQL数据库--典型案例分析(八)----实现员工数据的分页查询

转载请注明:http://blog.csdn.net/uniquewonderq 问题: 使用JDBC连接Mysql数据库,实现对Emp表数据的分页查询功能. 方案: 对于较大的数据量,通常采用分页查询的方式.不同的数据库产品有不同的数据库级的分页查询策略.例如:Oracle通常使用rownum的方式:而Mysql使用limit的方式. Oracle采用rownum和子查询实现分页查询,SQL语句如下, select * from (select rownum rn,empno,ename,jo

bos 第5天(定区的添加、定区的分页查询、hessian远程调用实现获取客户信息)

BOS项目笔记 第5天 今天内容安排: 1.添加定区功能 2.定区分页查询 3.hessian入门----远程调用技术 4.基于hessian实现定区关联客户 1. 添加定区 定区可以将取派员.分区.客户信息关联到一起. 页面:WEB-INF/pages/base/decidedzone.jsp 第一步:使用下拉框展示取派员数据,修改combobox的URL地址,发送请求 第二步:在StaffAction中提供listajax方法,查询没有作废的取派员,返回json数据 第三步:在StaffSe

分页查询不知你是否真正的懂和PHP的正则的应用和一些性能优化

一.不废话太多  直接进入例子. 1  问题: 有一张收藏表,里面存储的是用户和图书ID.数据量为1亿.现在要求分页获取所有用户ID(不重复),写下你的sql语句. 表结构大致如下:           CREATE TABLE 收藏表(              `id` bigint(20) unsigned NOT NULL auto_increment COMMENT 'primary key',              `uid` bigint(20) unsigned NOT NU

Hibernate笔记③--集合映射、组合映射、联合主键、查询案例

lazy 懒加载 默认为proxy ? 继承映射 discriminant column="type" type="string" ? 集合映射 生成表的语句: public class DbCreate { ????public static void main(String[] args) { ????????Configuration cfg=new Configuration().configure("/hibernate.cfg.xml"

MySQL随记 - 分页查询

# 进阶8:分页查询 /* 语法: select 查询列表 ⑦ from 表 ① [join type] join 表2 ② on 连接条件 ③ where 筛选条件 ④ group by 分组字段 ⑤ having 分组后的筛选 ⑥ order by 排序的字段 ⑧ limit 起始索引(offset), 条目个数(size) ⑨ 特点: size = 10 page 1 0 2 10 3 20 limit (page-1) *size, size; */ # 案例:查询前5条员工信息 SEL

子查询、分页查询

七.子查询/*含义:出现在其他语句中的select语句,称为子查询或内查询           外部的查询语句,称为主查询或外查询 分类:    按照子查询出现的位置:                select后面:                                 仅仅支持标量子查询                from后面:                                 支持表子查询: 将子查询结果充当一张表,要求必须取别名 where或者having后面

Oracle分页查询

一.利用rownum,无order by(最优方案) 如下例查询出来5003行数据,然后扔掉了前面5000行,返回后面的300行.经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然. SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM XXX t WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd') AND TO_DATE ('20060731',

QBC查询、离线条件查询(DetachedCriteric)和分页查询模版

一.QBC检索步骤 QBC检索步骤: 1.调用Session的createCriteria()方法创建一个Criteria对象. 2.设定查询条件.Expression类提供了一系列用于设定查询条件的静态方法, 这些静态方法都返回Criterion实例,每个Criterion实例代表一个查询条件. Criteria的add()方法用于加入查询条件. 3.调用Criteria的list()方法执行查询语句.该方法返回List类型的查询结果,在 List集合中存放了符合查询条件的持久化对象. 比较运

Linq高级查询与分页查询

Linq高级查询 以~开头: r=>r.Name.StartsWith("李"); 以~结尾: r=>r.Name.EndsWith("光"); 包含(模糊查询): r=>r.Name.Contains("四"); 数据总个数: Con.Goods.Count();||Con.Users.ToList().count; 最大值: Con.Goods.ToList().Max(r=>r.Price); 最小值: Con.Go