首页 > 编程语言 >java分页代码

java分页代码

时间:2023-06-08 20:34:53浏览次数:61  
标签:java 分页 int 代码 return void currentPage public String


现在开始编写 Service 层代码:

在 com.game.products.services.iface 包中新建 ProductsService 接口,代码如下:



package
    com.game.products.services.iface;

 
  import
    java.util.List;

 
  import
    com.game.products.model.Products;

 
  public
     
  interface
    ProductsService   
  {
     void  addProduct(Products pd); // 添加记录 
      void  deleteProduct(Products pd); // 删除记录     
     List getProducts(); // 获得所有记录 
      int  getRows();; // 获得总行数 
     List getProducts( int  pageSize,  int  startRow) ; // 获得一段记录 
     Products getProduct(String gameId); // 根据ID获得记录 
     String getMaxID(); // 获得最大ID值 
      void  updateProductd(Products pd); // 修改记录 
     List queryProducts(String fieldname,String value); // 根据条件查询的所有记录 
      int  getRows(String fieldname,String value); // 获得总行数 
     List queryProducts(String fieldname,String value, int  pageSize,  int  startRow); // 根据条件查询的一段记录 
 }

在  com.game.products.services  包中新建  ProductsServiceImp  类,这个类实现了  ProductsService  接口,代码如下:


package    com.game.products.services;

   import
    java.util.List;

   import
    com.game.products.dao.iface.ProductsDao;
   import
    com.game.products.model.Products;
   import
    com.game.products.services.iface.ProductsService;

   public
     
  class
    ProductsServiceImp  
  implements
    ProductsService  
  {
     private  ProductsDao productsDao;
    
     public  ProductsServiceImp()  {} 
    
     /** */ /** 
     * 函数说明:添加信息
     * 参数说明:对象 
     * 返回值:
      */ 
      public   void  addProduct(Products pd)   {
        productsDao.addProduct(pd);
    } 
 
      /** */ /** 
     * 函数说明:删除信息
     * 参数说明: 对象
     * 返回值:
      */ 
      public   void  deleteProduct(Products pd)   {
        productsDao.deleteProduct(pd);
    } 
 
      /** */ /** 
     * 函数说明:获得所有的信息
     * 参数说明: 
     * 返回值:信息的集合
      */ 
      public  List getProducts()   {
         return  productsDao.getProducts();
    } 
    
     /** */ /** 
     * 函数说明:获得总行数
     * 参数说明: 
     * 返回值:总行数
      */ 
      public   int  getRows()   {
         return  productsDao.getRows();
    } 
    
     /** */ /** 
     * 函数说明:获得一段信息
     * 参数说明: 
     * 返回值:信息的集合
      */ 
      public  List getProducts( int  pageSize,  int  startRow)   {
         return  productsDao.getProducts(pageSize, startRow);
    } 
 
      /** */ /** 
     * 函数说明:获得一条的信息
     * 参数说明: ID
     * 返回值:对象
      */ 
      public  Products getProduct(String gameId)   {
         return  productsDao.getProduct(gameId);
    } 
 
      /** */ /** 
     * 函数说明:获得最大ID
     * 参数说明: 
     * 返回值:最大ID
      */ 
      public  String getMaxID()   {
         return  productsDao.getMaxID();
    } 
 
      /** */ /** 
     * 函数说明:修改信息
     * 参数说明: 对象
     * 返回值:
      */ 
      public   void  updateProductd(Products pd)   {
        productsDao.updateProductd(pd);
    } 
 
      /** */ /** 
     * 函数说明:查询信息
     * 参数说明: 集合
     * 返回值:
      */ 
      public  List queryProducts(String fieldname,String value)   {
         return  productsDao.queryProducts(fieldname, value);
    } 
    
     /** */ /** 
     * 函数说明:获得总行数
     * 参数说明: 
     * 返回值:总行数
      */ 
      public   int  getRows(String fieldname,String value)   {
         return  productsDao.getRows(fieldname, value);
    } 
    
     /** */ /** 
     * 函数说明:查询一段信息
     * 参数说明: 集合
     * 返回值:
      */ 
      public  List queryProducts(String fieldname,String value, int  pageSize,  int  startRow)   {
         return  productsDao.queryProducts(fieldname, value,pageSize,startRow);
    } 
 
      public  ProductsDao getProductsDao()   {
         return  productsDao;
    } 
 
      public   void  setProductsDao(ProductsDao productsDao)   {
         this .productsDao  =  productsDao;
    } 
 
}


基本的业务层代码就这些了。因为还有分页的业务,所以接下来编写分页的代码。

分页是个公共的类,所以放在 com.game.commons 中。

Pager 类,封装了分页需要的属性,代码如下:



package    com.game.commons;

   import    java.math. 
  *
   ;

   public     
  class
    Pager   
  {
     private   int  totalRows;  // 总行数 
      private   int  pageSize  =   30 ;  // 每页显示的行数 
      private   int  currentPage;  // 当前页号 
      private   int  totalPages;  // 总页数 
      private   int  startRow;  // 当前页在数据库中的起始行 
     
     public  Pager()   {
    } 
    
     public  Pager( int  _totalRows)   {
        totalRows  =  _totalRows;
        totalPages = totalRows / pageSize;
         int  mod = totalRows % pageSize;
         if (mod < 0 )  {
            totalPages ++ ;
        } 
        currentPage  =   1 ;
        startRow  =   0 ;
    } 
    
     public   int  getStartRow()   {
         return  startRow;
    } 
      public   int  getTotalPages()   {
         return  totalPages;
    } 
      public   int  getCurrentPage()   {
         return  currentPage;
    } 
      public   int  getPageSize()   {
         return  pageSize;
    } 
      public   void  setTotalRows( int  totalRows)   {
         this .totalRows  =  totalRows;
    } 
      public   void  setStartRow( int  startRow)   {
         this .startRow  =  startRow;
    } 
      public   void  setTotalPages( int  totalPages)   {
         this .totalPages  =  totalPages;
    } 
      public   void  setCurrentPage( int  currentPage)   {
         this .currentPage  =  currentPage;
    } 
      public   void  setPageSize( int  pageSize)   {
         this .pageSize  =  pageSize;
    } 
      public   int  getTotalRows()   {
         return  totalRows;
    } 
      public   void  first()   {
        currentPage  =   1 ;
        startRow  =   0 ;
    } 
      public   void  previous()   {
         if  (currentPage  ==   1 )   {
             return ;
        } 
        currentPage -- ;
        startRow  =  (currentPage  -   1 )  *  pageSize;
    } 
      public   void  next()   {
         if  (currentPage  <  totalPages)   {
            currentPage ++ ;
        } 
        startRow  =  (currentPage  -   1 )  *  pageSize;
    } 
      public   void  last()   {
        currentPage  =  totalPages;
        startRow  =  (currentPage  -   1 )  *  pageSize;
    } 
      public   void  refresh( int  _currentPage)   {
        currentPage  =  _currentPage;
         if  (currentPage  <  totalPages)   {
            last();
        } 
    } 
}

PagerService  类,主要有个  getPager  方法返回  Pager  类。代码如下:


package    com.game.commons;

   public       class
    PagerService   
  {
     public  Pager getPager(String currentPage,String pagerMethod, int  totalRows)   {
         //     定义pager对象,用于传到页面 
         Pager pager  =   new  Pager(totalRows);
         //     如果当前页号为空,表示为首次查询该页
         //     如果不为空,则刷新pager对象,输入当前页号等信息 
           if  (currentPage  !=   null )   {
            pager.refresh(Integer.parseInt(currentPage));
        } 
         //     获取当前执行的方法,首页,前一页,后一页,尾页。 
           if  (pagerMethod  !=   null )   {
             if  (pagerMethod.equals( " first " ))   {
                pager.first();
            }   else   if  (pagerMethod.equals( " previous " ))   {
                pager.previous();
            }   else   if  (pagerMethod.equals( " next " ))   {
                pager.next();
            }   else   if  (pagerMethod.equals( " last " ))   {
                pager.last();
            } 
        } 
         return  pager;
    } 
}


这个分页方法比较简单,而且功能也齐全,许多页面级的开源 table 中分页很多也是基于这个原理,所以理解了这个分页,对其他各种分页技术的理解也就迎刃而解了。

服务层的代码就这些了,接下来就可以写 spring 的配置文件来用 spring 管理这些 Dao 和 Service 了。

标签:java,分页,int,代码,return,void,currentPage,public,String
From: https://blog.51cto.com/u_16065168/6442969

相关文章

  • javascript操作xml(增删改查)例子代码
    关键字:javascript操作xml(增删改查)自己做了一个小东西,不是很好,但是对初学来说是一个不错的例子!包括了stu.hta(是HTML应用程序);stu.xml注意下面的HTML代码必须保存为后缀名为hta否则当对XML文件进行操作(增删改)的时候就会提示没有权限!!文件stu.hta代码如......
  • javaScript通用数据类型校验_2
    /*要求:一、电话号码由数字、"("、")"和"-"构成二、电话号码为3到8位三、如果电话号码中包含有区号,那么区号为三位或四位四、区号用"("、")"或"-"和其他部分隔开用途:检查输入的电话号码格式是否正确输入:strPhone:字符串返回:如果通过验证返回true,否......
  • Java拓展-拆,装箱,线程,反射
    导言:在学习JavaSE的时候,我们会使用Java基础编程,并且了解了什么是面向对象的编程,会使用Java写一些基础算法程序,接下来,我们需要了解Java的自动拆箱和自动装箱,单线程和多线程,反射是什么,值得注意的是,讲的是Java中的特性,但是OOP语言其实都是用这些操作的,只是小部分不同罢了一.自动拆......
  • 简易java分页标签
    简易java分页标签1,标签的实现类NumenTag.javajava代码 1.importjava.util.ArrayList;2.importjava.util.HashMap;3.importjava.util.List;4.importjava.util.Map;5.6.importjavax.servlet.jsp.JspException;7.impor......
  • Javascript动态修改select选项
    1、向Select里添加OptionJs代码1.//IEonly,FF不支持Add方法2.functionfnAddItem(text,value){3.varselTarget=document.getElementById("selID");4.selTarget.Add(newOption("text","value"));5.}6.......
  • Javascript: setTimeout()使用及 setInterval()使用
    Javascript:setTimeout()使用及setInterval()使用2006-10-1203:36Evaluatesanexpressionafteraspecifiednumberofmillisecondshaselapsed.(在指定时间过后执行指定的表达式) Syntax:iTimerID=window.setTimeout(vCode,iMilliSeconds[,sLanguage])ParametersvCod......
  • JAVA的springboot+vue学习平台管理系统,校园在线学习管理系统,附源码+数据库+论文+PPT
    1、项目介绍在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括学习平台的网络应用,在外国学习平台已经是很普遍的方式,不过国内的管理平台可能还处于起步阶段。学习平台具有学习信息管理功能的选择。学习平台采用java技术,基于springboot框架,mysql数据库进行......
  • Java高级技术、Junit单元测试框架入门
          ......
  • Java中的字符串常量池
    Java中字符串对象创建有两种形式,一种为字面量形式,如Stringstr="droid";,另一种就是使用new这种标准的构造对象的方法,如Stringstr=newString("droid");,这两种方式我们在代码编写时都经常使用,尤其是字面量的方式。然而这两种实现其实存在着一些性能和内存占用的差别。这一切都......
  • 详解Java中的注解
    在Java中,注解(Annotation)引入始于Java5,用来描述Java代码的元信息,通常情况下注解不会直接影响代码的执行,尽管有些注解可以用来做到影响代码执行。注解可以做什么Java中的注解通常扮演以下角色编译器指令构建时指令运行时指令其中Java内置了三种编译器指令,本文后面部分会重点介绍Jav......