최근에 회사는 알람 페이지 기능을 수행해야하며, 이는 페이지 매김이 필요합니다. 많은 정보를 확인한 후 PageHelper가 더 적합하다는 것을 발견했습니다.
따라서 처음부터 시작하여 PageHelper를 사용하는 것에 대한 자습서를 작성했으며 하루 동안 바빴던 것을 녹음했습니다.
1. 첫째, 프로젝트에서 PageHelper의 종속성을 추가해야합니다. 여기 Maven과 함께 추가했습니다.
<pectionency> <groupId> com.github.pageHelper </groupId> <artifactID> pageHelper </artifactID> <버전> 4.1.6 </version> </fectionency>
2. MyBatis 구성 파일에서 PageHelper 구성 추가
<configuration> <flugins> <!-com.github.pageHelper는 PageHelper 클래스가 위치한 패키지 이름입니다-> <plugin interceptor = "com.github.pageHelper.pageHelper"> <!-이 매개 변수는 4.0.0 ------------------------------------------------------- pagenum 페이지 번호-> <!-효과는 startPage의 pagenum과 동일합니다-> <property name = "offsetAspagenum"value = "true"/<!-이 매개 변수는 false-> <!-true로 설정하면 쿼리 카운트가 Rowbounds Pagination을 사용하여 수행됩니다 .-> <propertswithcount ""value "//>/>/>/>>/>/>/>/>/>. rowbounds.limit = 0, 모든 결과가 쿼리됩니다-> <!-(페이지 쿼리가 실행되지 않았지만 결과는 여전히 페이지 유형이라는 사실에 해당합니다)-> <property name = "pagesize"value = "true"/<!-버전 3.3.0은 사용 가능한 경우-페이징 매개 변수를 사용하지 않는 경우-quagerization <! Pagenum> 페이지가 마지막 페이지를 쿼리하는 경우-> <!-합리화가 비활성화 될 때, pagenum <1 또는 pagenum> 페이지가 빈 데이터를 반환하는 경우-> <속성 이름 = "합리적"value = "true"/> <!-버전 3.5.0을 사용할 수 있도록-객체 매개지 (객체 매개 변수) 메소드를 지원하기 위해``매개 변수를 추가하기 위해 매개 변수 또는 get get to get get get get get get get get get get get get get get get get get get get get get get get to get get get get at aversity issaven -> <!-pagenum, pageize, count, pagesizezero, passizezero, 합리적, Orderby를 구성 할 수 있으며 매핑의 기본값을 구성 할 수 있습니다-> <!-이 의미를 이해하지 못하면 구성을 자연스럽게 복사하지 마십시오-> <!-<속성 이름 = "pagenum = start;"/>-> <!-<!-<!-< <property name = "supportmethodsarguments"value = "true"/> <!-항상 PageInfo 유형을 반환하고, 반환 유형이 pageinfo인지 확인하십시오. 그리고 none ret
3. PAGEBEAN 클래스를 추가하여 PAGED 정보를 저장하십시오
공개 클래스 PageBean <t>는 시리얼이 가능성 {private static final long serialversionuid = 1L; 사적 긴 총계; // 총 레코드 수 개인 목록 <T> 목록; // 결과 세트 개인 int pagenum; // 비공개 int pagesize 수; // 페이지 당 레코드 수 개인 int 페이지; // 총 페이지 수 개인 int 크기; // 현재 페이지의 num <= pageize public pagebean (list <t> list) {if (list instanceof page) {page <t> page = (page <t>) 목록; this.pagenum = page.getPagenum (); this.pagesize = page.getPagesize (); this.total = page.getTotal (); this.pages = page.getPages (); this.list = 페이지; this.size = page.size (); }} public long getTotal () {return total; } public void settotal (긴 총) {this.total = Total; } public list <T> getList () {반환 목록; } public void setList (list <t> list) {this.list = list; } public int getsize () {return size; } public void setsize (int size) {this.size = size; } public int getPagenum () {return pagenum; } public void setpagenum (int pagenum) {this.pagenum = pagenum; } public int getPagesize () {return pagesize; } public void setPagesize (int pagesize) {this.pagesize = pagesize; } public int getPages () {반환 페이지; } public void setPages (int pages) {this.pages = pages; }}다음은 비즈니스 로직 코드입니다
4. 먼저 Mapper.xml 파일에서 시작하여 데이터베이스 SQL을 작동하고 필요한 데이터를 찾으십시오.
<select id = "selectAllList"ParameterType = "com.alarm.bean.alarmParamModel"resultMap = "AlarmMap"> select message_id, seqnum, message_type, process_status, distribution_status, processor, cose_time, close_time, system_id, group_id, warlay_level, td_alarm_info </selec.
5. 맵퍼 인터페이스 방법
공개 목록 <AlarmParamModel> selectAllList (AlarmParamModel Model);
6. 서비스 인터페이스 방법
DataGrid SelectAllList (AlarmParamCodel 모델, int pagenum, int pagesize);
7. 서비스 구현 클래스
여기서 그것이 페이지 매김의 주요 논리라는 점에 유의해야합니다. pagenum은 페이지 번호를 나타내고, Pagesize는 표시된 페이지의 수를 나타내고, startPag 메소드는 초기 페이지입니다. OrderBy 메소드는 특정 필드에 따라 데이터를 정렬하는 것입니다. 여기서는 OCCR_TIME (DESC)의 하강 순서를 사용합니다.
public datagrid selectAllList (AlarmParamCodel 모델, int pagenum, int pagesize) {pagehelper.startpage (pagenum, pagesize); PageHelper.OrderBy ( "alkes_time desc"); 목록 <AlarmParAmmoDel> list = this.AlarmMgrMapper.SelectAllList (모델); PageInfo <AlarmParamModel> pageinfo = new PageInfo <AlarmParamModel> (List); Datagrid DataGrid = new Datagrid (pageInfo.getTotal (), pageInfo.getList ()); 반환 Datagrid; }8. 나는 여기에 DataGrid 클래스를 사용했는데,이 클래스는 총 (총) 및 행 (데이터)을 포함하여 데이터를 프론트 데스크로 전달하는 데 사용되는 클래스입니다.
공개 클래스 Datagrid {Private Long Total; 개인 목록 행 = New ArrayList <> (); public datagrid () {super (); } public datagrid (긴 총, 목록 행) {super (); this.total = 총; this.rows = 행; } public long getTotal () {return total; } public void settotal (긴 총) {this.total = Total; } public list getRows () {return 행; } public void setrows (목록 행) {this.rows = 행; }}9. 컨트롤러 계층 작성을 시작하고 이전에 쓴 방법을 호출하십시오.
여기에서 오프셋 및 제한은 프론트 데스크에서 전송 된 페이지 번호와 페이지 당 표시된 페이지 수입니다. 부트 스트랩 가능의 오프셋 및 한계와는 달리 오프셋은 오프셋을 나타냅니다. 즉, 페이지 당 10 개의 데이터가 표시되면 Bootstrap의 두 번째 페이지로 표시되는 오프셋은 10이고 첫 페이지는 각각 0과 20입니다. 그리고 여기에서 내 오프셋은 pagenum을 나타냅니다.
@RequestMapping (value = "/alarminfo/list", method = {requestMethod.get, requestMethod.post}) @ResponseBody public dataGrid alarminfo (alarmparammodel model, @requestParam (value = "오프셋", defaultValue = "0", reving = false) 정수 pagenum, @requestParam (value = "limit", defaultValue = "10", required = false) {dataGrid datagrid = this.AlarmMgrService.SelectAllList (model, pagenum, pagesize); 반환 Datagrid; }10. 이제 프론트 데스크 요청은 백엔드 데이터를 가져 와서 페이지를 paginate 할 수 있습니다. 프론트 데스크 부트 스트랩 테이블의 구성을 게시하겠습니다.
$ ( '##tb_departments'). 부트 스트랩 가능 ({url : 'http://10.1.234.134:8088/api/alarminfo/list', // 요청 URL (*) 메소드 : 'get', // 요청 방법 (*) 스트라이프 : // 디스플레이 컬러 여부, // cash, cache, to to to to to to to to to to to to to to to to to to to to to to to to to to to to to to to to to to to to to to in wore 일반,이 속성은 (*) 페이지 매김을 설정해야합니다. (*) PAGING (*) 만 표시하는지 여부 : True, // Pagination 버튼이 아닌 총 데이터 수만 표시하도록 설정합니다. "Server", Pagination Method : Client Client Pagination, Server Server Pagination (*) Pagenumber : // 첫 번째 페이지를로드 할 첫 페이지 초기화, 기본 첫 페이지 Pageize : // 페이지 당 레코드 행 수 : [10, 25, 50, 100]. strictsearch : true, showcolumns : false, // 모든 열이 표시 되나요? ShowRefresh : false, false, // down worly button display minimumcountcolumns : 2, // clickToselect가 허용되는 최소 열 수준의 클릭 수정기를 활성화 할 수있는 곳 : // height, // if tore to that set, 500, // 레코드 수에 따라 테이블의 높이, "ID", "ID", // 각 행의 고유 식별은 일반적으로 기본 키 열 ShowToggle입니다 : False, // 세부보기 및 목록 CardView : False, // 세부 정보를 수행합니다. 세부 사항 : Detailformatter, PaginationHalign : "left" 부트 스트랩과 함께 제공되는 페이징 버튼을 사용하지 않았습니다. 나는 버튼 그룹을 JQ로 직접 썼습니다. 다음 기사에서는 버튼 코드를 게시하여 더 높은 정도로 사용자 정의 할 수 있도록 ~ 부트 스트랩 가능한 서브 밴드와 함께 페이징 버튼을 사용할 수도 있고 구성을 변경할 수도 있습니다.
위는 편집자가 소개 한 SpringMVC+MyBatis+PageHelper Pagination에 대한 자세한 설명입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!