며칠 전, 나는 여기에서 손으로 쓴 SQL Pagination 쿼리로 페이징 구현을 공유했습니다. 이제 MyBatis Paging Plugin PageHepler를 사용하여 페이징을 구현하십시오.
페이징 플러그인을 사용하는 이유는 SQL 코드의 쓰기를 단순화하고 더 나은 물리적 페이징을 달성하기 때문에 완전한 페이징 SQL 코드를 작성하는 것보다 오류를 줄일 수 있습니다.
Mybatis Paging 플러그인 데모 프로젝트 주소 : Free-Mybatis_PageHelper_JB51.rar
여기에서 Maven 프로젝트 구현을 사용합니다.
1. 먼저 페이징 플러그인의 종속성을 가져옵니다.
<pectionency> <groupId> com.github.pageHelper </groupId> <artifactID> pageHelper </artifactID> <버전> 5.0.0 </version> </fectionency>
2. 페이징 인터셉터 플러그인을 구성하십시오
공식 문서에 대한 두 개의 구성 페이지 인터셉터 플러그인이 있습니다.
1. MyBatis 구성 XML에서 인터셉터 플러그인을 구성하십시오
<!- 구성 파일의 플러그인 위치는 요구 사항을 충족해야합니다. 그렇지 않으면 오류 가보고됩니다. 순서는 다음과 같습니다. 속성?, 설정?, 변형기?, Typehandlers?, ObjectFactory?, ObjectWrapperFactory?, 플러그인?, 환경?, DatabaseIdProvider?-> <flugins> <!-com.github.pageHelper가 PageHelper 클래스가있는 패키지 이름입니다.> < 인터셉터 = "com.github.pageHelper.PageInterceptor"> <!-다음 메소드를 사용하여 매개 변수를 구성하면 나중에 소개 된 모든 매개 변수가 있습니다.> <property name = "value ="value1 "/> </plugins> </plugins>가 있습니다.
2. 스프링 구성 파일에서 인터셉터 플러그인 구성
Spring의 속성 구성 메소드를 사용하면 플러그인 속성을 사용하여 다음과 같이 구성 할 수 있습니다.
<bean id = "sqlsessionfactory"> <!-다른 구성에주의를 기울이십시오-> <속성 이름 = "플러그인"> <배열 "> <Array> <ean> <속성 이름 ="properties "> <!-다음 메소드를 사용하여 매개 변수를 구성하고, 한 줄을 구성하고, 구성-> <alue> params = value1 </value> </bean> </bean> </bean>> </bean>> </bean>> </bean> </bean> </bean>
여기서는 프로젝트에서 두 번째 유형을 사용하며 그 매개 변수는 실제 상황에 따라 구성되거나없이 구성 할 수 있습니다.
3. 통화 방법
Mapper Layer SQL 문은 페이징을 쓰지 않고 일반 쿼리 방법에 따라 작성됩니다.
<!-Pagination Query-> <select id = "finds"resulttype = "country"> id, countryName, CountryCode </select> </select>
맵퍼 레이어 인터페이스 :
/*** query* @param params* @return*/public list <country> finds ();
서비스 서비스 계층 인터페이스 :
/ ** * Pagination Query * @param params pagination 매개 변수 pageno (페이지 번호), pagesize (페이지 당 쿼리 수) * @return */ public pageinfo <country> finds (params params);
서비스 비즈니스 계층 구현 클래스 : PageHelper.startPage (1, 10); 첫 번째 매개 변수는 어느 페이지를 나타내고, 두 번째 매개 변수는 각 페이지에 표시된 레코드 수를 나타냅니다.
PageHelper.startPage (1, 10)를 실행 한 후; 문, 첫 번째 선택 메소드는 Paginated가됩니다 : list <country> blogs = countrymapper.finds ();
그런 다음 PageInfo를 사용하여 쿼리 결과를 래핑합니다. pageinfo <countryinfo = new PageInfo <country> (블로그);
PageInfo를 제어 계층으로 되돌립니다
/*** query*/public pageinfo <country> finds (params params) // query int pageno = params.getPageno (); int pagesize = params.getPagesize (); pageHelper.startPage (pageno, pagesize); List <country> blogs = countryMapper.Finds (); // pageinfo <country> pageinfo = new PageInfo <country> (블로그)로 결과를 래핑합니다. PageInfo 리턴; }
PageInfo를 여기에 반환 한 후 Params Pagination 매개 변수를 전달하고 PageInfo를 컨트롤러 계층으로 전달하십시오.
list <country> clist = pageinfo.getList (); 그런 다음 Clist를 범위에 넣고 <c : foreach> </c : foreach>를 사용하여 루프를 사용하여 페이징 데이터/*** 홈페이지를 얻고 Pagination Query* @return*/ @requestmapping ( "/index") public modelview index (params params) {modelandview modelview = new ModelAndView (); // 첫 번째 페이지, 쿼리 10 params.setpageno (1); params.setpagesize (10); pageinfo <country> pageinfo = countryservice.finds (params); list <country> clist = pageinfo.getList (); // 쿼리 수량 long couts = countryservice.counts (); ModelAndView.AddObject ( "Clist", Clist); modelandview.addoBject ( "couts", couts); ModelAndView.SetViewName ( "index"); Return ModelandView; }위의 것은 주요 페이지의 모든 구현 코드입니다. 이제 모든 구성 및 구현에 대한 코드를보십시오.
pom.xml
<project xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance"xmlns = "http://maven.apache.org/pom/4.0.0"xsi : schemalocation = "http://maven.apache.org/pom/0.0.0.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <modelversion> 4.0.0 </modelversion> <groupid> com.krry </groupid> <artifactid> maven_pagehepagehepagehepler_ora </artifactid> war </packaging> <0 version> 1.0-s-s-nap </version> <name> maven_pagehepler_ora </name> <url> http://maven.apache.org </url> <properties> <profform.build.sourceencoding> utf-8 </project.build.sourceencoding> <!-mybatis generator-> <! <targetJavaproject> $ {basedir}/src/main/java </targetjavaproject> <targetMapperPackage> com.isea533.mapper </targetmapperpackage> <targetmodelpackage> com.isea533.mybatis.model </targetmodelpackage> <xml path-> <targetResourcesProject> $ {basedir}/src/main/resources </targetResourcesProject> <targetXmlPackage> mapper </targetxmlpackage> <!-compile jdk 버전-> <jdk.version> 1.6 </jdk.version> <!-종속성 버전-> 3.3.1.1 </mybatis. <mapper.version> 3.3.6 </mapper.version> <pageHelper.version> 5.0.0 </PageHelper.version> <mysql.version> 5.1.29 </mysql.version> <spring.version> 4.1.2. Release </spring.version> <mybatis.spring.4 </mybatis.sprons.spreston </properties> <pectionilency> <pectinement> <groupId> junit </groupId> <artifactId> junit </artifactId> <버전> 4.11 </version> <scope> test </scope> </dependency> <groupId> log4J </groupId> <artifactID> log4j </artifactID> <버전> 1.17 </version> 1.17 </version> 17. <!-웹-> <pectionency> <groupId> javax.servlet </groupid> <artifactid> servlet-api </artifactid> <버전> 2.5 </version> <copop> 제공 </scope> </fexendency> <groupId> javax.servlet.jsp </groupIcid> </artifact> </artifact> </scope> 제공 </scope> </dependency> <pectomency> <groupId> javax.servlet </groupid> <artifactid> jstl </artifactid> </version> </dependency> <pectionency> <groupid> javax.ws.rs </groupId> javax.ws.rs-api </artifactid> <버전> 2.0 </version> </dependency> <prevency> <groupId> javax.websocket </groupid> <artifactid> javax.websocket-api </artifactid> <버전> 1.0 </dependency> <pelection> <groupid> javax.annotation </group-actid> javax.antation-api. <버전> 1.2 </version> </dependency> <pectomency> <groupId> javax.Transaction </groupId> <artifactid> javax.Transaction-API </artifactid> <버전> </dependency> <!-스프링-> <pection> <groupId> org.springframework <artifactid> <artifactid> </의존성> <pectionency> <groupid> org.springframework </groupid> <artifactid> spring-orm </artifactid> </fectionency> <pectionement> <groupid> org.springframework </groupid> <artifactid> spring-xm </inpectemency> <GroupSid> Org. <Artifactid> spring-jdbc </artifactid> </fectionency> <pectionency> <groupid> org.springframework </groupid> <artifactid> spring-tx </artifactid> </fexendency> <pelection> <groupid> org.springframework </hourpelency <group <spram <org. <Artifactid> spring-web </artifactid> </fectionency> <pectionency> <groupid> org.springframework </groupid> <artifactid> spring-aop </artifactid> </fexendency> <groupid> org.spramework </groupId> <artifactid> spring-test> </artifactid> 종속성-> <pectionency> <groupid> org.codehaus.castor </groupid> <artifactid> castor-xml </artifactid> <3.3 </version> </fectionency> <!-Spring-JSON 종속성-> <pection> <groupid> com.fasterxml.core.core </groupid> <버전> 2.4.2 </version> </dependency> <pectomency> <groupId> com.fasterxml.jackson.dataformat </groupId> <artifactid> Jackson-dataformat-xml </artifactid> <version> 2.4.2 </version> </dependency> </<pectionency-> </groupid> org.aspectJ </groupid> <ArtifactID> SAGONTJWEAVER </artifactID> <Bersion> 1.8.2 </version> </fectionency> <!-업로드 파일-> <groupId> Commons-FileUpload </groupId> <ArtifactID> Commons-FileUpload </artifactid> <3.1 </dependency> <!-mysql->> <groupid> mysql </groupid> <artifactid> mysql-connector-java </artifactid> <버전> $ {mysql.version} </version} </version> </fectionency> <!-druid-> <groupid> com.alibaba </groupid> <artifactid> druid </artifactid> </fectency> <!-mybatis-> <pectionement> <groupId> org.mybatis </groupid> <artifactid> mybatis </artifactid> <version.version} </version> </fectionency> <pection> <groupid> org.mybatis </groupbatis> <artifactid> mybatis-sprit. <버전> $ {mybatis.spring.version} </version> </dependency> <!-mybatis 생성기-> <prection <groupid> org.mybatis.generator </groupId> <artifactid> mybatis-generator-core </artifactid> <3.2 <3.2 <3.2 <scope> <옵션>> </dependency> <!-페이지 플러그인-> <pectionency> <groupId> com.github.pageHelper </groupId> <artifactID> pageHelper </artifactId> <bersion> $ {pageHelper.version} </version> </dependency> <! <pectomency-> <groupid> tk.mybats> <Artifactid> mapper </artifactid> <버전> $ {mapper.version} </version} </version} </version} </version </version> <pectionement> <groupid> org.apache.commons </groupid> <artifactid> commons-lang3 </artifactid> <3.2 </version> </dependemencies> <pecientmanagement> <groupid> org.springframework </groupid> <artifactid> Spring-framework-bom </artifactid> <버전> $ {spring.version} </version> <type> pom </type> <scope> import </scope> </speence> </sexendency> </fectiencymanagement> <repositors> <id> <NAMETE> LOCAL PRIVATE NEXUS </name> <url> http://maven.oschina.net/content/groups/public/ </url> <reeleases> <enabled> true </enabled> </릴리스> <snapshots> <anabled> false </enabled> </reposatory> <id> sonatype-nexus-releases </id> <name> sonatype nexus 릴리스 </name> <url> http://oss.sonatype.org/content/repositories/releases </url> <releases> <enable> enable> enable> </snaphots> <repository> <id> Sonatype-nexus-snapshots </id> <name> sonatype nexus snapshots </name> <url> http://oss.sonatype.org/content/repositories/snapshots </url> <enable> enabled> </enabled> <snaphots> </snapshots> </repository> </repository> </repository> </repository> </repository> </build> <grugind> org.apache.maven.plugins </groupid> <artifactid> maven-compiler -plugin </version </version> <source> 1.7 <17 <1.7 <) </configuration> </plugin> </plugins> </build> </project>ApplicationContext.xml
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xmlns : aop = "http://www.springframework.org/schema/aop"xmlns : context = "http://www.springframework.org/schema/tx"xmlns : util = "http://www.springframwork.org/schema/util. xmlns : p = "http://www.springframework.org/schema/p"xsi : schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.spramework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/sprger-3.0.0.0.1 스캔-> <context : component-scan base-package = "com.krry"> < /context : comperment-scan> <!-외부 리소스 파일 가져 오기-> <context : context : propert-placeholder location = "classpath : jdbc.properties" /> <!-datasource "init init <" "init downetod =" "init-method" " 이름 = "driverclassName"value = "$ {db.driver}" /> <속성 이름 = "url"value = "$ {db.url}" /> <속성 이름 = "username"value = "$ {db.username}" /> <속성 이름 = "password"vale = "$ {db.password}" /< /bean> < /bean>. id = "txmgr"> <property name = "dataSource"ref = "dataSource"> </property> </bean> <!-트랜잭션 주석 드라이버를 활성화합니다-> <tx : Annotation-Driven Transaction-Manager = "txmgr"/> <!-mybatis 'sqlsessionfactory-> <bean id = "sqlsection" "sqlscomecor. ref = "dataSource"/<property name = "configlocation"value = "classpath : mybatis-config.xml"> </property> <property name = "inflealiaseSpackage"value = "com.krry.entity"/> <속성 이름 = "플러그인"> <Tarray> <bean> <!-여기 구성 구성이 주로 사용하는 방법을 보여줍니다. 이해하지 못하면 다음 구성을 제거해야합니다-> <속성 이름 = "Properties"> <value> </value> </value> </bean> </array> </property> </bean> <!-구성은 맵퍼를 전체로 스캔 할 수있는 스캐너를 스캔 할 수있는 스캐너를 스캔 할 수 있습니다. value = "com.krry.mapper"> </property> <속성 이름 = "sqlsessionfactorybeanname"value = "sqlsessionfactory"> </property> </beans>mybatis-config.xml
<? xml version = "1.0"alcoding = "utf-8"?> <! doctype configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd "> configuration> 이름 = "Cacheenabled"value = "true" /> <!-성능에 대한 관련 객체의 즉각적인로드를 끕니다-> <설정 name = "lazyloadingEnabled"value = "true" /> <!-관련 객체의로드 형태를 설정하십시오. 다음은 주문형 부하 필드입니다 (부하 필드는 SQL에 의해 지정 됨). 관련 테이블의 모든 필드는 성능을 향상시키기 위해로드되지 않습니다-> <설정 이름 = "AttressivelaZyloading"value = "false" /> <!-알 수없는 SQL 쿼리의 경우 공통 효과를 달성하기 위해 다른 결과 세트를 반환 할 수 있습니다-> <value = "true"! value = "true" /> <!-사용자 정의 기본 키 값 (예 : 프로그램에 의해 생성 된 UUID 32 비트 인코딩과 같은), 데이터 테이블의 PK 생성 전략은 덮어 쓰기-> <setting name = "usegeneratedkeys"value = "true" /<!-<value-attribute 맵핑에 대한 중첩 결과를 제공합니다. " <!-성능을 향상시키기위한 배치 업데이트 작업 용 캐시 SQL-> <설정 이름 = "defaultexecutople"value = "batch" /> <!-시간 초과 데이터베이스가 25,000 초 이상 응답하지 않은 경우-> <설정 이름 = "defaultStatementTimeout"value = "25" /> names name = "LazylTriggerMemods" value = "Equals, Clone, Hashcode, ToString"/> </settings> <tondealias> <!-사용자 정의 사용자 객체의 별칭-> <!-<typealias type = "com.krry.mybatis.sysmanage.entity.user"alias = "user"/>-> <!-Batch Deferent alias-> packet alias = "com.krry"/>. </구성>
Springmvc.xml
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xmlns : p = "http://www.springframework.org/schema/p"xmlns : context = "http://www.springframework.org/schema/util"xmlns : mvc = "http://www.springframwork.org/schema/mvc" xsi : schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/contet http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.spramework.org/schema/mvc http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-주석 모드 드라이버를 켭니다.> <bean/> <!-MVC 사용자도 켜기 서브 user a Conctormer에 등록하십시오. FormattingConverserViceFactoryBean-> <MVC : Annotation-Driven> <MVC : Messe-Converters Register-Default = "true"> <bean "> <bean> <property name ="supportedMediAtypes "> <list> 텍스트/plain; charset = utf-8 </value> <talue> text/html; charset = utf-8 </value> </value> </value> </value> <bean/> <bean/> <ean> <ean> <property name = "prefixjson"value = "false"/> <property name = "objectmapper"> <ean bean> <!-응답 body의 날짜 유형을 처리합니다-> <property name = "dateformat"> <ean> <constructor-arg type = "java.lang.string"value = "value ="value =. </property> <!-필드가 null 일 때 표시되지 않음-> <속성 이름 = "serializationInclusion"> <value type = "com.fasterxml.jackson.annotation.jsoninclude.include"> non_null </value> </property> </bean> </property> <property name = "supportedMediAtypes"> char <ut-8 <value> application/x-www-form-urlencoded; charset = utf-8 </value> </list> </property> </bean> </mvc : message-converters> </mvc : 주석-구동> <!-스캔 패키지-> <context : component-scan base-package = "com.krry.controller"> component : </conte> SpringMVC 구성 에서이 프로젝트의 모든 요청 (.DO, AddUser, JS/Image/CSS)이 SpringMVC에 의해 구문 분석되고 모든 정적 리소스 파일을 필터링하고 해제해야하므로 리소스 파일을 설정해야합니다 .-> <!-다음 정적 자원 필터링-> <!-<mvc : mvc : mvc : rounds 중 하나를 선택해야합니다. 매핑 = "/resource/** 위치 ="/resource/"/"!-렌더링 jsp/freemaker/velocity-> <bean> <!-페이지 저장소의 경로를 만듭니다-> <property name = "prefix"value = "/web-inf/pages/"> </propertix> <propertix "value"</propert "> </bean>.
jdbc.properties 및 log4j.properties를 표시 할 필요가 없으며 거의 동일합니다.
web.xml
<? xml version = "1.0"encoding = "utf-8"?> <web-app xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance"xmlns = "http://java.sun.com/xml/ns/javaee" xsi : schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"버전 = 2.5 "> <display-name> maven_pagehepler </display-name> <welcome-file-list> <welcome-file> index/index </welcome-file> </welcome-file-list> <context-param> <paramectconfiglocation </param-name> <param-value> classpath : applactContext.xml </conte-par-value> <Leater-Class> org.springframework.web.context.contextloaderListener </laiseer-class> </listener> <layer> <layer-class.sprimframework.web.util.introspectorcecleanuplistener </lurtenerclass> <filter> </filter-name> encome> encome> <filter-class> org.springframework.web.filter.characterencodingfilter </filter-class> <init-param> incoding </param-name> <param-value> utf-8 </param-value> </init-param> </init-param> <filter-mapping> <filter-name> nocod> name> encod> name> <Url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servle-name> maven_pagehepler </servlet-name> org.springframework.web.servlet.dispatcherErvlet </servlet-class> <init-param> <aparom-name> contexconfiglopod <Param-value> classpath : springmvc.xml </param-value> </init-param> </servlet> <servlet-mapping> <servlet-name> maven_pagehepler </servlet-name> <url-pattern>/index/index/index-pattern> <servlet-mapping> <servlet-mapping> <Servlet-name> maven_pagehepler </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
엔티티 클래스 : Country.java
패키지 com.krry.entity; 공공 계급 국가 { / *** 기본 키* / 개인 정수 ID; / *** 이름*/ 개인 문자열 countryName; / *** 코드*/ 개인 문자열 CountryCode; 공공 국가 (정수 ID, 문자열 CountryName, String CountryCode) {this.id = id; this.countryName = CountryName; this.countryCode = CountryCode; } / *** 기본 키를 가져옵니다** @return id- 기본 키* / public integer getId () {return id; } / *** 기본 키 설정** @param id 기본 키* / public void setId (정수 ID) {this.id = id; } / *** get name** @return countryName- 이름* / public String getCountryName () {return countryName; } / *** set name** @param countryname name* / public void setcountryName (String CountryName) {this.countryName = countryName; } / *** get code** @return countryCode- 코드* / public String getCountryCode () {return countryCode; } / *** 코드 설정** @param countrycode code* / public void setCountryCode (String CountryCode) {this.countryCode = CountryCode; }}params.java
패키지 com.krry.entity;/** * * params * @author krry * @version 1.0.0 * */public class params {private integer pagesize = 10; 개인 정수 pageno = 0; 공개 정수 getpageno () {return pageno; } public void setpageno (정수 pageno) {this.pageno = pageno; } public Integer getPagesize () {return pagesize; } public void setPagesize (Integer Pagesize) {this.pagesize = pagesize; }} 지속성 계층 : CountryMapper.java
패키지 com.krry.mapper; import java.util.list; import com.krry.entity.country;/** * * 맵퍼 : 데이터베이스 운영 * @author krry * @version 1.0.0 * */public interface countrymapper {/** * query * @param params */public list <country> finds (); / ** * 계산 * com.krry.dao.admin * 메소드 이름 : countblogs * @author krry * @param params * @return int * @Except * @Since 1.0.0 */ public long counts (); } CountryMapper.xml
<? xml version = "1.0"alcoding = "utf-8"?> <! doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd "> <mapper namper"> <! query-> <select id = "finds"resulttype = "country"> 컨트리에서 id, countryname, country core </select> <!-쿼리 블로그 수-> <counts "count"resulttype = "long"> country </select> </mapper>에서 count (*)를 선택하십시오.
비즈니스 계층 인터페이스 :
패키지 com.krry.service; import java.util.hashmap; import java.util.list; import javax.servlet.http.httpservletrequest; import org.apache.ibatis.annotations.param; 가져 오기 com.github.pagehelper.pageinfo; com.krry.entity.params;/** * 서비스 계층 : 비즈니스 로직 핸들 (IMP) * @Author AsUsaad */public interface iCountryService {/** * Pagination Query @param 매개 변수 Pageno (페이지 번호), 페이지 <country <countrys <countrys <countrys <countrys <countrys <countrys <countrys <countrys <country of queries <country <countrys <countrys <country of page <countsize */page aper in page apeation parements pageno (page number) *. 매개 변수); / ** * 블로그 수를 계산 * @param params * @return */ public long counts (); } 비즈니스 계층 구현 클래스
패키지 com.krry.service.impl; import java.util.hashmap; import java.util.list; import org.springframework.beans.bean.annotation.autowired; import org.springframework.stereotyp.service; import org.springframework.wevelllet.modview; com.github.pagehelper.pagehelper; import com.github.pagehelper.pageinfo; import com.krry.entity.country; import com.krry.entity.params; import com.krry.mapper.countrymapper; import com.krry. asusaad */ @servicepublic class countryservice implements icountryservice {@autowired private countrymapper countrymapper; /*** query*/public pageinfo <country> finds (params params) {// query int pageno = params.getPageno (); int pagesize = params.getPagesize (); pageHelper.startPage (pageno, pagesize); List <country> blogs = countryMapper.Finds (); // pageinfo pageinfo <country> pageinfo = new PageInfo <country> (블로그)로 결과를 래핑합니다. PageInfo 리턴; } / ** * 계산 * @param params * @return * / public long counts () {long couts = countryMapper.counts (); 귀환 couts; }} 제어 계층 : krrycontroller.java
package com.krry.controller; import java.util.arraylist; import java.util.hashmap; import java.util.list; import org.junit.test; import org.springframework.beans.beans.annotation.autowed; import org.springframework.stereotyp.controller; org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.responsebody; import org.springframework.web.servlet.modelandview; import com.github.pagehelper.pageinfo; import com.krry com.krry.entity.params; import com.krry.service.icocom. ** * krrycontroller * 컨트롤러 계층, 요청 * @author asusaad * */ @controller // 각 사용자가 반환 한 웹 계층은 @index {public classe { ")임을 의미합니다. iCountryService countryservice; /*** 홈페이지 및 Pagination Query* @return*/ @requestmapping ( "/index") public modelandview index (params params) {modelAndView ModelAndView = new ModelAndView (); // 첫 번째 페이지, 쿼리 10 params.setpageno (1); params.setpagesize (10); pageinfo <country> pageinfo = countryservice.finds (params); list <country> clist = pageinfo.getList (); // 쿼리 수량 long couts = countryservice.counts (); ModelAndView.AddObject ( "Clist", Clist); modelandview.addoBject ( "couts", couts); ModelAndView.SetViewName ( "index"); Return ModelandView; }/** * ajax 요청에 대한 Pagination Query * @param params * @return */@responsebody @requestmapping ( "/loaddata") public hashmap <string, object> loaddata (params params) {hashmap <String, map = new Hashmap <String, object> (); pageinfo <country> pageinfo = countryservice.finds (params); list <country> clist = pageinfo.getList (); map.put ( "clist", clist); 리턴 맵; } //}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.