java获取产品分页查询
2017-11-24 14:05
204 查看
分页查询是一个非常重要的实现,
实现pageBean
public class PageBean<T> {
/**
* 设置一个list集合,由于java中的泛型都是伪泛型,所以泛型传入一个<T>
* 不是一个具体的泛型类型,这样更具有扩展性
*/
private List<T> list;
/**
* 定义一个页码数的成员变量
*/
private int pageNum;
/**
* 定义记录总页数的成员变量
*/
private int totalPage;
/**
* 生成一个get/set方法
*/
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
/**
* 生成toSting方法用于测试
*/
@Override
public String toString() {
return "PageBean [list=" + list + ", pageNum=" + pageNum + ", totalPage=" + totalPage + "]";
}
}
实现servlet
public class BaseServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getParameter("method");
if(method == null){
method = "defout";
}
Class c = getClass();
try {
Method m = c.getMethod(method, HttpServletRequest.class,HttpServletResponse.class);
String path = (String)m.invoke(this, request,response);
if(path != null){
request.getRequestDispatcher(path).forward(request, response);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String defout(HttpServletRequest request, HttpServletResponse response){
System.out.println("默认程序");
return null;
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
上面的servlet只是显现通过反射获取方法,
-----------------------------------------------------------------------------------------------------------------------------------------
public class FenYe extends BaseServlet {
private static final long serialVersionUID = 1L;
public String findByPage(HttpServletRequest request, HttpServletResponse response) {
//获取页面传入的当前页码数,获取的是String类型的需要使用包装类进行转换
String p = request.getParameter("pageNum");
//定义一个变量用于接收当前页面数
int pageNum;
//进行判断当前获取的页码数
if(p == null){
//当p==null时,获取的当前页码数是1
pageNum = 1;
}else{
//如果不等null时pageNum就等于当前获取的页码数
pageNum = Integer.parseInt(p);
}
//设置一页显示记录数(自己随便设置)
int rows = 5;
//调用service
ServicePor sp= new ServicePor();
//调用ServicePro的findByPage方法
PageBean pb = sp.findByPage(pageNum,rows);
//将pageBean设置进session中
request.setAttribute("pb",pb);
return super.defout(request, response);
}
}
这个servlet用于实现方法
--------------------------------------------------------------------------------------------------------------------------------------
public class ServicePor {
public PageBean findByPage(int pageNum, int rows) {
//调用数据库层
ProductDao pd = new ProductDao();
//调用pageBean,可以不要泛型,java中的泛型都是伪泛型
PageBean pb = new PageBean();
//将获取的pageNum设置进PageBen的方法中
pb.setPageNum(pageNum);
//获取产品的总记录数
int count = pd.sumCount();
//获取产品的总页数
pb.setTotalPage(((count % rows == 0) ? (count / rows) : (count / rows +1)));
//根据分页查询产品
List<Product> list = pd.finByPage(pageNum,rows);
//将获取的产品的list集合设置进PageBean中
pb.setList(list);
//返回pb
return pb;
}
}
这个service用于实现一些逻辑
--------------------------------------------------------------------------------------------------------
由于每个人的数据库的字段结构都是不同的所以数据库层只需要根据数据库表结构里面的字段响应设置就可以了
实现pageBean
public class PageBean<T> {
/**
* 设置一个list集合,由于java中的泛型都是伪泛型,所以泛型传入一个<T>
* 不是一个具体的泛型类型,这样更具有扩展性
*/
private List<T> list;
/**
* 定义一个页码数的成员变量
*/
private int pageNum;
/**
* 定义记录总页数的成员变量
*/
private int totalPage;
/**
* 生成一个get/set方法
*/
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
/**
* 生成toSting方法用于测试
*/
@Override
public String toString() {
return "PageBean [list=" + list + ", pageNum=" + pageNum + ", totalPage=" + totalPage + "]";
}
}
实现servlet
public class BaseServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getParameter("method");
if(method == null){
method = "defout";
}
Class c = getClass();
try {
Method m = c.getMethod(method, HttpServletRequest.class,HttpServletResponse.class);
String path = (String)m.invoke(this, request,response);
if(path != null){
request.getRequestDispatcher(path).forward(request, response);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String defout(HttpServletRequest request, HttpServletResponse response){
System.out.println("默认程序");
return null;
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
上面的servlet只是显现通过反射获取方法,
-----------------------------------------------------------------------------------------------------------------------------------------
public class FenYe extends BaseServlet {
private static final long serialVersionUID = 1L;
public String findByPage(HttpServletRequest request, HttpServletResponse response) {
//获取页面传入的当前页码数,获取的是String类型的需要使用包装类进行转换
String p = request.getParameter("pageNum");
//定义一个变量用于接收当前页面数
int pageNum;
//进行判断当前获取的页码数
if(p == null){
//当p==null时,获取的当前页码数是1
pageNum = 1;
}else{
//如果不等null时pageNum就等于当前获取的页码数
pageNum = Integer.parseInt(p);
}
//设置一页显示记录数(自己随便设置)
int rows = 5;
//调用service
ServicePor sp= new ServicePor();
//调用ServicePro的findByPage方法
PageBean pb = sp.findByPage(pageNum,rows);
//将pageBean设置进session中
request.setAttribute("pb",pb);
return super.defout(request, response);
}
}
这个servlet用于实现方法
--------------------------------------------------------------------------------------------------------------------------------------
public class ServicePor {
public PageBean findByPage(int pageNum, int rows) {
//调用数据库层
ProductDao pd = new ProductDao();
//调用pageBean,可以不要泛型,java中的泛型都是伪泛型
PageBean pb = new PageBean();
//将获取的pageNum设置进PageBen的方法中
pb.setPageNum(pageNum);
//获取产品的总记录数
int count = pd.sumCount();
//获取产品的总页数
pb.setTotalPage(((count % rows == 0) ? (count / rows) : (count / rows +1)));
//根据分页查询产品
List<Product> list = pd.finByPage(pageNum,rows);
//将获取的产品的list集合设置进PageBean中
pb.setList(list);
//返回pb
return pb;
}
}
这个service用于实现一些逻辑
--------------------------------------------------------------------------------------------------------
由于每个人的数据库的字段结构都是不同的所以数据库层只需要根据数据库表结构里面的字段响应设置就可以了
相关文章推荐
- Java连接HBASE数据库,创建一个表,删除一张表,修改表,输出插入,修改,数据删除,数据获取,显示表信息,过滤查询,分页查询,地理hash
- 分页查询产品信息案例;第一步:创建产品页面,向服务器发送请求(获取所有产品信息)
- 分页查询产品信息,第二步:创建一个servlet来接收请求,获取所有的产品信息
- datatables+java实现服务器端分页,排序,查询,列的显示影藏
- JAVA入门[10]-mybatis分页查询
- java 模糊查询 分页(自定义标签)
- 详述 DB2 分页查询及 Java 实现
- JPA hibernate spring repository pgsql java 工程(四):分页查询
- java中如何实现模糊分页查询
- Atitit.列表页面and条件查询的实现最佳实践(2)------翻页 分页 控件的实现java .net php
- java分页查询实例
- java spring-data-solr 查询 排序 分页
- java datatable 前端分页 查询条件解决中文乱码
- JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)
- Java程序员从笨鸟到菜鸟之(六十九)细谈Hibernate(十七)Hibernate实现分页和综合查询详解
- oracle数据库查询结果分页处理(Java +Jsp +Tag)
- 用Java实现异构数据库的高效通用分页查询功能
- 测试分页查询出数据并分文件导出[java工程]
- 多线程分页获取查询结果,所有线程执行完毕,按顺序合并查询结果
- java 模糊查询 分页(自定义标签)