PageHelper 페이지 플러그 인 및 일반 페이지 js
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);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.