栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java培训学习之从入门到精通的Java分页工具

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java培训学习之从入门到精通的Java分页工具

从数据库层面分页(数据库为​MySQL​,数据访问层框架为MyBatis)
定义一个 PageBean 工具类。的工具类需要至少6个私有属性,数据的totalRecord总数; totalPage 数据页总数;pageSize:每页几个数据;pageNow 当前页码;列出当前页码的列表数据集合;startIndex sql 语句 查询的起点。

package com . pagehelper . test ; 
import java . util . List ; 
public  class  PageBean < T >  { 
    
    private  int totalRecord ; 
    
    private  int totalPage ; 
    private  int pageSize ; 
    
    private  int pageNow ; 
    
    private List < T >list ; 
    
    private  int startIndex ; 
    public  PageBean ( int pageNow ,  int pageSize ,  int totalRecord ) { 
        this . totalRecord = totalRecord ; 
        
    public  PageBean( int pageNow ,  int totalRecord ) { 
        this . totalRecord = totalRecord ; 
        pageSize =  5 ; 
        totalPage = totalRecord % pageSize == 0 ? totalRecord / pageSize : totalRecord / pageSize + 1 ; 
        this . pageNow = pageNow ; 
        startIndex =  ( pageNow - 1) * pageSize ; 
    } 
    
    public  int  getTotalRecord ( )  { 
        return totalRecord ; 
    }
    public  void  setTotalRecord ( int totalRecord )  { 
        this . totalRecord = totalRecord ; 
    }
    public  int  getTotalPage ( )  { 
        return totalPage ; 
    }
    public  void  setTotalPage ( int totalPage )  { 
        this . totalPage = totalPage ; 
    }
    public  int  getPageSize ( )  { 
        return pageSize ; 
    }
    public  void  setPageSize ( int pageSize )  { 
        this . pageSize = pageSize ; 
    }
    public  int  getPageNow ( )  { 
        return pageNow ; 
    }
    public  void  setPageNow ( int pageNow )  { 
        this . pageNow = pageNow ; 
    }
    public List < T >  getList ( )  { 
        return list ; 
    }
    public  void  setList ( List < T > list )  { 
        this . list = list ; 
    }
    public  int  getStartIndex ( )  { 
        return startIndex ; 
    }
    public  void  setStartIndex ( int startIndex )  { 
        this . startIndex = startIndex ; 
    }
}

Mapper 接口至少需要两种方法,一种方法查询总记录数,另一种方法查询数据。Worker 是我的数据库的 pojo 类。

int  getTotalRecord ( ) ;
List < Worker >  selectAll ( @Param ( value =  "startIndex" )  int startIndex ,  @Param ( value =  "pageSize" ) int pageSize ) ;

以下代码是Worker对应的resultMap和对应接口方法的实现

< mapper  namespace = " com.pagehelper.mapper.WorkerMapper "  > 
    < resultMap  id = " baseResultMap "  type = " com.pagehelper.pojo.Worker "  > 
        < id  column = " wid "  property = " wid "  jdbcType = " INTEGER " /> 
        < result  column = " password " property = " password"  jdbcType = " VARCHAR " /> 
        < result  column = " company "  property = " company "  jdbcType = " VARCHAR " /> 
        < result  column = " department "  property = " department "  jdbcType = " VARCHAR " /> 
        < result  column = " job " property =" job "  jdbcType = " VARCHAR " /> 
        < result  column = " name "  property = " name "  jdbcType = " VARCHAR " /> 
        < result  column = " sex "  property = " sex "  jdbcType = " VARCHAR " /> 
        < result  column = "age "  property = " age "  jdbcType = " INTEGER " /> 
        < result  column = " tel "  property = " tel "  jdbcType = " VARCHAR " /> 
        < result  column = " email "  property = " email "  jdbcType = " VARCHAR " /> 
        < result  column = "regist_time " Property = " registTime "  the jdbcType = " TIMESTAMP " /> 
        < Result  column = " IMG "  Property = " IMG "  the jdbcType = " VARCHAR " /> 
     
    < SELECT  ID = " getTotalRecord "  the resultType = " int " >
        SELECT COUNT(wid) FROM worker
     
    < select  id = " selectAll "  resultMap = " baseResultMap " >
        SELECT wid, password, company, department,job, name, sex, age, tel, email, regist_time,img FROM worker limit #{startIndex},#{pageSize}
     

服务层调用代码:

@Override 
    public PageBean < the Worker >  the getAll ( int pageNow )  { 
        
        int totalRecord = workerMapper . GetTotalRecord ( ) ; 
         
        PageBean < Worker > pageBean =  new  PageBean < > ( pageNow , totalRecord ) ;
         
        pageBean . SetList ( workerMapper . A selectAll ( pageBean . GetStartIndex ( ) , pageBean . GetPageSize ( ) ) ) ; 
        
        return pageBean ; 
    }

因为构建的java项目没有写Controller和page,所以使用test方法显示查询结果

package com . pagehelper . test ;
import com . pagehelper . mapper . WorkerMapper ; 
import com . pagehelper . pojo . Worker ; 
import com . pagehelper . service . impl . WorkerServiceImpl ; 
import com . pagehelper . util . PageBean ; 
import org . apache . ibatis . io . Resources ; 
importorg . apache . ibatis . session . SqlSession ; 
import org . apache . ibatis . session . SqlSessionFactory ; 
import org . apache . ibatis . session . SqlSessionFactoryBuilder ;
import java . io . IOException ; 
import java . io . InputStream ;
public  class  Test1  {
    public  static  void  main ( String [ ] args )  throws IOException { 
         
        String resource =  "mybatis-config.xml" ; 
        InputStream inputStream = Resources . getResourceAsStream ( resource ) ; 
         
        SqlSessionFactory sessionFactory =  new  SqlSessionFactoryBuilder ( ) . Build ( inputStream ) ; 
        
        The SqlSession the session = the sessionFactory . The openSession ( ) ; 
         
        WorkerMapper Mapper = the session . GetMapper ( WorkerMapper . Class ) ; 
         
        WorkerServiceImpl workerService =  new new  WorkerServiceImpl ( mapper ) ; 
         
        PageBean < the Worker > pageBean = workerService . The getAll ( . 1 ) ; 
         
        the System . OUT . the println ( "total number of records:" + pageBean . getTotalRecord ( ) ) ( ) ) ; for ( the worker worker : pageBean . getList ( ) ; 
        /* * print pages TotalPage/ 
        the System . OUT . the println ( "pages: " + pageBean . getTotalPage
        
         )  { 
            System . OUT . The println ( worker ) ; 
        } 
    } 
}

操作结果

log4j:ERROR Could not find value for key log4j.appender.LogFIle
log4j:ERROR Could not instantiate appender named "LogFIle".
2019-07-24 09:26:41 [main:1]-[DEBUG] ==> Preparing: SELECT COUNT(wid) FROM worker 
2019-07-24 09:26:41 [main:56]-[DEBUG] ==> Parameters: 
2019-07-24 09:26:41 [main:123]-[DEBUG] <== Total: 1
2019-07-24 09:26:41 [main:131]-[DEBUG] ==> Preparing: SELECt wid, password, company, department,job, name, sex, age, tel, email, regist_time,img FROM worker limit ?,? 
2019-07-24 09:26:41 [main:132]-[DEBUG] ==> Parameters: 0(Integer), 5(Integer)
2019-07-24 09:26:41 [main:148]-[DEBUG] <== Total: 5
Total records: 29
Total pages: 6
Worker{wid=100001, password='admin', company='Soft Emperor', department='Development Department', job='Super Admin', name='Super Admin', sex='Male', age= 18, tel='123', email='123@163.com', registTime=Sat Jul 20 11:33:18 CST 2019, img='default.jpg'}
Worker{wid=100002, password='123', company='Soft Emperor Group', department='Development Department', job='Employee', name='Administrator', sex='Male', age=122, tel='123', email='123@163.com', registTime=Sat Jul 20 16:00:59 CST 2019, img='default.jpg'}
Worker{wid=100003, password='admin', company='Soft Emperor', department='Development Department', job='Administrator', name='Administrator', sex='Male', age=18, tel='123', email='123@163.com', registTime=Sat Jul 20 11:33:20 CST 2019, img='default.jpg'}
Worker{wid=100004, password='123', company='Soft Emperor', department='Development Department', job='BOSS', name='123', sex='男', age=18, tel= '123', email='123', registTime=Sat Jul 20 15:10:33 CST 2019, img='default.jpg'}
Worker{wid=100005, password='123', company='Soft Emperor Group', department='Personnel Department', job='Manager', name='Sada', sex='Male', age=18, tel='123', email='123', registTime=Sat Jul 20 15:10:50 CST 2019, img='default.jpg'}
Process finished with exit code 0

Java开发工具还有很多,大家可要多多了解,在以后的学习中还会用到。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/460011.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号