分页高级查询步骤
来源:互联网 发布:600831广电网络 编辑:程序博客网 时间:2024/05/16 14:25
1.定义bean类
public class User {
private String name;
private String password;
private String sex;
private int age;
//set get 方法,此处省略不写
}
2.定义用于记录页面数据的分页工具:PageBean类
public class PageBean {
private int pageSize;//页面大小
private int pageNo;//页码
private int totalData;//未分页前的总数据量
private List<User> list;//用于存储查询结果,可以定义泛型,这样一 个PageBean 类可以为多个bean类使用
//set get 方法,此处省略不写
//获取总页数
public int getTotalPages() {
return (totalData + pageSize - 1) / pageSize;
}
//获取上一页
public int getPrePage() {
if(pageNo == 1)
return 1;
else
return pageNo - 1;
}
//获取下一页
public int getNextPage() {
if(pageNo == this.getLastPage())
return this.getLastPage();
else
return pageNo + 1;
}
//获取第一页
public int getFirstPage(){
return 1;
}
//获取最后一页
public int getLastPage(){
if(this.getTotalPages() == 0)
return 1;
else
return this.getTotalPages();
}
}
3.编写dao的实现类
//分页查询
public List<User> pagingGet(int pageNo, int pageSize,User user){
//用于查询数据的sql语句,如果要根据条件查询,应先查询符合条件的结果并编号再分页
String sql = "select temp.* from(select u.*,rownum num from user u where";
//获取页面大小和当前页码
int startNo = pageSize * (pageNo - 1) + 1;
int endNo = startNo + pageSize - 1;
//根据条件查询
if(user.getName() != null && !"".equals(user.getName()){
sql = sql + " name like '%" + user.getName() +"%' and";
}
if(user.getSex() != null && !"".equals(user.getSex()){
sql = sql + " sex = " + user.getSex() +" and";
}
if(user.getAge() != null && !"".equals(user.getAge()){
sql = sql + " age = " + user.getAge() +" and";
}
sql = sql + " temp.num between "+startNo+" and "+endNo;//sql执行语法,此处省略不写,可根据所掌握的知识自行编写
}
//符合查询条件的未分页前的总数据量
public int getTotalRecords(User user){
//用于查询数据的sql语句,如果要根据条件查询,应先查询符合条件的结果并编号再分页
String sql = "select count(*) from user where";
//根据条件查询
if(user.getName() != null && !"".equals(user.getName()){
sql = sql + " name like '%" + user.getName() +"%' and";
}
if(user.getSex() != null && !"".equals(user.getSex()){
sql = sql + " sex = " + user.getSex() +" and";
}
if(user.getAge() != null && !"".equals(user.getAge()){
sql = sql + " age = " + user.getAge() +" and";
}
sql = sql + " 1=1";//sql执行语法,此处省略不写,可根据所掌握的知识自行编写
}
4.编写业务层的实现类
private UserDao userDao = new UserDaoImpl();
public PageBean pagingQuery(int pageNo, int pageSize,User user){
List<User> list = userDao.pagingGet(pageNo, pageSize, user);//查询符合条件的结果
int totalRecords = userDao.getTotalRecords;//获取未分页前的总数据量
PageBean pb = new PageBean();
pb.setList(list);//查询结果
pb.setPageNo(pageNo);//页码
pb.setPageSize(pageSize);//页大小
pb.setTotalData(totalRecords);//未分页前的总数据量
return pb;
}
5.调用业务层分页查询方法
- 分页高级查询步骤
- 分页与高级查询
- 分页查询步骤
- 高级查询公共分页包
- JavaWeb之高级分页查询
- JDBC的分页查询以及hibernate高级查询分页
- MyBatis分页的拓展--合并高级查询
- Mongodb高级查询Aggregation聚合组件分页
- Hibernate 高级查询技巧——分页查询
- Oracle数据库高级查询(二)分页查询
- 高级自定义查询、分页、多表联合存储过程
- 2010.1.4 高级分页查询和session加强
- springMVC、myBatis的物理分页和高级查询
- 数据库连接池-DBUtils高级 事务+不确定条件查询+分页
- springMVC、myBatis的物理分页和高级查询
- JAVA高级【4.7】《Java核心技术2》数据库-简单分页查询
- ajax实现分页,多条件查询步骤(基于nodejs)
- JAVA高级【4.8】《Java核心技术2》数据库-JavaWeb分页显示内容——数据库分页查询
- CKEDITORckeditor 4.2.1_演示 ckeditor 上传&插入图片
- 14、Hibernate的HQL与QBC检索
- Java冒泡排序
- 学习代码及算法(未完待续,不定时更新)
- 快速把web项目部署到weblogic上
- 分页高级查询步骤
- android-Viewpager
- 经典排序算法设计与分析(插入排序、冒泡排序、选择排序、shell排序、快速排序、堆排序、分配排序、基数排序、桶排序、归并排序)
- ZOJ 3686 A Simple Tree Problem
- Hadoop集群测试第一步:在虚拟机中安装Linux
- Vertex Atrributes
- SQLSERVER2005调试存储过程跟函数
- 提升HBase写性能
- Java 并发编程实战学习笔记——寻找可强化的并行性