PageHelper 페이지 플러그 인 및 일반 페이지 js

12236 단어
페이지 별로 개술 하 다.
1. 물리 적 페이지
물리 적 페이지 는 특정한 물리 적 실체 에 의존 합 니 다. 이 물리 적 실 체 는 바로 데이터 베이스 입 니 다. 예 를 들 어 MySQL 데이터 베 이 스 는 limit 키 워드 를 제공 합 니 다. 프로그래머 는 limit 키 워드 를 가 진 SQL 문 구 를 작성 해 야 합 니 다. 데이터 베 이 스 는 페이지 결 과 를 되 돌려 줍 니 다.사용 을 권장 하 다.
2. 논리 페이지
논리 페이지 는 프로그래머 가 작성 한 코드 에 의존 합 니 다.데이터 베 이 스 는 페이지 결과 가 아니 라 모든 데 이 터 를 되 돌려 주 고 프로그래머 가 코드 를 통 해 페이지 데 이 터 를 가 져 옵 니 다. 자주 사용 하 는 작업 은 데이터베이스 에서 모든 데 이 터 를 한꺼번에 조회 하여 List 집합 에 저장 하 는 것 입 니 다. List 집합 이 질서 가 있 기 때문에 색인 에 따라 지정 한 범위 의 데 이 터 를 가 져 옵 니 다.
MyBatis 페이지 플러그 인 - PageHelper
이 플러그 인 은 현재 다음 데이터베이스 의 물리 적 페이지 를 지원 합 니 다.
  • Oracle
  • Mysql
  • MariaDB
  • SQLite
  • Hsqldb
  • PostgreSQL
  • DB2
  • SqlServer(2005,2008)
  • Informix
  • H2
  • SqlServer2012
  • Derby
  • Phoenix

  • 페 이 징 플러그 인 5.0
    페이지 플러그 인 5.0 버 전과 4.2. x 가 완전히 다 르 기 때문에 master 가 지 는 5. x 버 전 이 고 4.2 는 하나의 분기 로 존재 합 니 다. 4.2 에 대한 PR 이 있 으 면 분기 버 전 으로 제출 하 는 것 을 주의 하 십시오.
    집성
    PageHelper 를 사용 하려 면 classpath 에 만 포함 시 켜 야 합 니 다. pagehelper-x.x.x.jar 화해시키다 jsqlparser-0.9.5.jar。
    Maven 을 사용한다 면 pom. xml 에 다음 의존 도 를 추가 하 십시오:
    
        com.github.pagehelper
        pagehelper
             

    이번 개발 환경: JDK 1.8 + MySql 5.0 + Mybatis - pagehelper 4.2.1 + maven
    Maven 의 다른 의존 버 전이 이 플러그 인 에 영향 을 줄 수 있 으 므 로 도입 에 실 패 했 습 니 다.
    사용 절차
    1. maven pom. xml 에 의존 도 추가
    2. Mybatis - config. xml 에 sqlSession Factory 에 플러그 인 설정 추가






    dialect=mysql





    3. sql, service 쓰기
      public PageInfo selectByUnitId(Integer id,Integer currPage,Integer pageSize) {
            PageHelper.startPage(currPage,pageSize);//      +(  0   ),     
            PageInfo pageInfo  = new PageInfo(studentDao.selectByUnitId(id));
            return pageInfo;
        }
    sql
    sql:select * from student;
    pageHelper
    PageInfo: :{pageNum=1, pageSize=5, size=5, startRow=1, endRow=5, total=10, pages=2, list{...}}
    PageInfo 。
    Controller pageInfo requestScope , student( )

     이렇게 하면 pageNum 에 따라 지정 한 정 보 를 출력 할 수 있 습 니 다.
    jsp: 탭


    js: 페이지 코드
    function createPaginationNav(e, t, a, n, p, o, i, s) {
        null == e && (e = ""), e = e.replace(/\&currPage=\d+\&/, "&"), e = e.replace(/\&?currPage=\d+\&?/, "");
        var r = e.length;
        r > 0 && "?" == e.charAt(r - 1) && (e = e.replace("?", "")), null == i && (i = ""), "undefined" == typeof s && (s = 10);
        var g = s,
            l = e,
            f = l.indexOf("?");
        if (l += f > 0 ? "&currPage=" : "?currPage  =", document.write(' ' + t + "  "), document.write(' ' + p + "  "), p > 1) {
            1 == t ? (document.write('첫 페이지'), document.write('<<')) : (document.write('첫 페이지'), document.write('<<'));
            var d = 1;
            if (p > g) {
                var u = 0,
                    c = 0,
                    m = Math.round(g / 2);
                for (d = p / g + 1, t > m && p - m >= t ? (u = t - m, c = t + m - 1) : m >= t ? (u = 1, c = g) : (u = p - g + 1, c = p), c > p && (c = p), ipage = u; c >= ipage; ipage++) p >= ipage && document.write(t == ipage ? '' + ipage + "" : '' + ipage + "")
            } else
                for (ipage = 1; p >= ipage; ipage++) document.write(t == ipage ? '' + ipage + "" : '' + ipage + "");
            t == p ? (document.write('>>'), document.write('끝 페이지')) : (document.write('>>'), document.write('끝 페이지')), document.write('  GOTO')
        }
    }
    
    function goto_page(e, t) {
        var a = /^[0-9]+$/;
        return gotoInputId = "gotopage" + t, a.test(document.getElementById(gotoInputId).value) ? void(location.href = e + document.getElementById(gotoInputId).value) : (alert("     !"), document.getElementById(gotoInputId).value = "", !1)
    }

    // jsp


    createPaginationNav('${pageContext.request.contextPath}/student?unitId=${param.unitId}&currPage=0',
    ${student.pageNum},
    ${student.prePage},
    ${student.nextPage},
    ${student.pages},
    ${student.pageSize},
    '');

     

     
    MyBatis plus 유 니 버 설 Mapper 페이지 구현
    설치:https://www.cnblogs.com/jin-nuo/p/9734599.html
        
    private
    ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml"); private EmployeeMapper employeeMapper= ioc.getBean("employeeMapper", EmployeeMapper.class);     //5. page rowBounds Page(currPage,Pagesize);( )
        List emps = employeeMapper.selectPage(new Page<>(3, 2), null);
        System.out.println(emps);

     Mybatisplus 플러그 인 에 있 는 PageIntercepter 플러그 인 을 사용 하여 물리 적 페이지 를 만 듭 니 다.
     
       
                
               
                   class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor">
               
            
    //
    public void testPaginationInterceptor(){
    IPage pages =employeeMapper.selectPage(new Page<>(1,5),null);//
    System.out.println(pages.getRecords());
    }
    sql :
    DEBUG 10-02 11:37:07,239 ==>  Preparing: SELECT id,last_name AS lastName,email,gender,age FROM tbl_employee
    LIMIT 0,5 

    IPage :
    default IPage setPages(long pages) {
        return this;
    }
    List getRecords();
    IPage setRecords(List var1);
    long getTotal();
    IPage setTotal(long var1);
    long getSize();
    IPage setSize(long var1);
    long getCurrent();
    IPage setCurrent(long var1);

     
     
     
     

    좋은 웹페이지 즐겨찾기