Hace unos días, compartí la implementación de la paginación mediante una consulta de paginación SQL escrita a mano aquí. Ahora echemos un vistazo al uso de MyBatis Paging Plugin PageHepler para implementar la paginación.
La razón para usar el complemento de paginación es simplificar la redacción del código SQL y lograr una mejor paginación física, lo que también puede reducir los errores que escribir un código SQL de paginación completo.
Dirección del proyecto de demostración del complemento de paginación mybatis: free-mybatis_pagehelper_jb51.rar
Utilizo la implementación del proyecto Maven aquí:
1. Primero importe las dependencias del complemento de paginación:
<Spendency> <MoupRid> com.github.pagehelper </proupid> <artifactid> pageHelper </artifactid> <verserse> 5.0.0 </versión> </pendency>
2. Configure el complemento de Paging Interceptor
Hay dos complementos de interceptor de página de configuración para documentos oficiales
1. Configure el complemento Interceptor en MyBatis Configuration XML
<!- La ubicación de los complementos en el archivo de configuración debe cumplir con los requisitos, de lo contrario se informará un error. El orden es el siguiente: ¿Propiedades?, ¿Configuración?, ¿Typealiases?, TypeHandlers?, ObjectFactory?, ObjectWrapperFactory?, Complementos?, Entornos?, DatabaseIdProvider?, Mappers?-> <glugins> <!-com.github.pagehelper es el nombre del paquete donde se encuentra la clase de página Pagehelper-> <complementos <glugins Interceptor = "com.github.pagehelper.pageinterceptor"> <!-Use el siguiente método para configurar los parámetros, y habrá todos los parámetros introducidos más tarde-> <propiedad name = "param1" valor = "valor1"/> </plugins>
2. Configure el complemento Interceptor en el archivo de configuración de Spring
Usando el método de configuración de atributos de Spring, puede usar el atributo de complementos para configurarlo como lo siguiente:
<bean id = "sqlsessionFactory"> <!-Presta atención a otras configuraciones-> <Property Name = "Plugins"> <Array> <Bean> <Property Name = "Properties"> <!-Configure los parámetros usando el siguiente método, configure una línea-> <valor> params = value1 </alue> </property> </ bean> </array> </sperter> </bean>
Aquí uso el segundo tipo en mi proyecto, y los parámetros en él están configurados de acuerdo con la situación real, o se pueden configurar sin
3. Métodos de llamadas
Las declaraciones SQL de la capa mapeador se escriben de acuerdo con el método de consulta general, sin escribir paginas:
<!-consulta de paginación-> <select id = "finss" resultType = "country"> seleccione ID, nombre de campo, CountryCode de Country </elect>
interfaz de la capa mapeador:
/*** consulta* @param params* @return*/public list <Country> finds ();
Interfaz de capa de servicio de servicio:
/ ** * Consulta de paginación * @param Parámetros de paginación Pageno (número de página), PageSize (número de consultas por página) * @return */ public PageInfo <Country> Finds (Params Params);
Servicio de la clase de implementación de la capa de negocios: PageHelper.StartPage (1, 10); El primer parámetro indica qué página y el segundo parámetro indica el número de registros que se muestran en cada página
Después de ejecutar PageHelper.StartPage (1, 10); Declaración, el primer método de selección inmediatamente siguiente será paginado: List <Country> Blogs = CountryMapper.Finds ();
Luego use PageInfo para envolver los resultados de la consulta, PageInfo <Country> PageInfo = New PageInfo <Country> (blogs);
y devuelva PageInfo a la capa de control
/*** consulta*/public PageInfo <Country> Finds (Params Params) // Query int pageno = params.getPageno (); int pageSize = params.getPageSize (); PageHelper.StartPage (Pageno, PageSize); List <Country> Blogs = CountryMapper.Finds (); // Envuelve el resultado con PageInfo <Country> PageInfo = new PageInfo <Country> (blogs); devolver PageInfo; }
Después de devolver PageInfo aquí, pase los parámetros de Pagination Params y analice la página de Page en la capa del controlador:
List <Country> clist = pageInfo.getList (); Luego coloque el clist en el alcance y use <c: foreach> </c: foreach> a bucle para obtener datos de paginación/*** Página de inicio y consulta de paginación* @return*/@requestmapping ("/index") Public ModelandView Index (Params Params) {ModelandView ModelandView = new ModelandView (); // primero la primera página, consulta 10 params.setPageno (1); params.setPageSize (10); PageInfo <Country> PageInfo = CountryService.Finds (Params); List <Country> clist = pageInfo.getList (); // Cantidad de consulta Long Couts = CountryService.Counts (); modelandView.addoBject ("clist", clist); modelandView.addoBject ("Couts", Couts); modelandView.setViewName ("índice"); return ModelAndView; }Los anteriores son todos los códigos de implementación para páginas clave. Ahora mire los códigos para todas las configuraciones e implementaciones:
pom.xml
<Proyecto xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://maven.apache.org/pom/4.0.0" xsi: schemalocation http://maven.apache.org/maven-v4_0_0.xsd "> <modelVersion> 4.0.0 </modelversion> <MoupRoMid> com.krry </groupid> <artifactid> maven_pagehepler_ora <//packaging> war </packaging> <versole> 1.0-snapshot </versión> versión> <name> maven_pagehepler_ora </name> <url> http://maven.apache.org </sl> <propersies> <proyecto.build.sourceencoding> utf-8 </project.build.sourceEncoding> <!-MyBatis Generator-> <!-Java Interfaces y entidades- <targetJavaproject> $ {BaseIR}/src/main/java </targetJavaproject> <targetMapperPackage> com.isea533.mybatis.mapper </targetMapperPackage> <targetModelpackage> com.isea533.mybatis.model </targetModelPackage> <! <TargetResourcesProject> $ {BaseIR}/src/main/recursos </targetResourcesProject> <targetXmlpackage> mapper </targetXmlpackage> <!-compilar JDK versión-> <jdk.version> 1.6 </jdk.version> <!-Versión de dependencia-> <mybatis.version> 3.3.1 <</matIsBatIsIsSyBatIsyBatIsybatyByByBy> <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.version> 1.2.4 </mybatis.spring.version> </propiences> <pendencies> <pendency> <proupid> junit </proupid> <artifactid> junit </artifactid> <versión> 4.11 </versión> <cope> test </scope> </pendency> <pendency> <proupid> log4j </groupt </groupid> <AtifactID> log4j </arfactid> <versión> 1.2.17 </versión> </pendency> <!-Web-> <Spendency> <Proupid> javax.servlet </groupid> <artifactid> servlet-api </artifactid> <versión> 2.5 </versión> <cope> proporcionada </pope> </pope> <pendency> <pendency> <MoupRid> javax.servlet.jsp </groupid> <artifactid> jsp-api </artifactid> <versión> 2.1 </versión> <cope> proporcionó </cope> </pendency> <pendency> <proupid> javax.servlet </groupid> <arfactid> jstl </artifactid> <versers <MoupRid> javax.ws.rs </groupid> <artifactid> javax.ws.rs-api </arfactid> <verserse> 2.0 </versión> </pendency> <ependency> <grupoID> javax.websocket </groupId> <artifactid> javax.websocket-oapi </artifactid> <versions> 1.0 </versión> <tartifactid> javax.websocket-dapi </artifactid> <versions> 1.0 </versión> </artifactid> javax.websocket-aypi </artifactid> <versions> 1.0 </versión> </artifactid> javax.websocket-aypi </artifactid> <versers <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>javax.transaction-api</artifactId> <version>1.2</version> </dependency> <!--Spring--> <Spendency> <ProupId> org.springframework </groupid> <artifactId> spring-context </artifactId> </pendency> <pendency> <MoupRupid> org.springframework </groupId> <tifactId> spring-anm </artifactId> </dependency> <epartency> <grupiD> org.springframework </groupid> <artifactId>spring-oxm</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> </dependency> <dependency> <MoupRiD> org.springframework </artifactid> </pendency> <epardency> <moupRid> org.springframework </groupid> <artifactid> spring-web </artifactid> </dependency> <pendency> <grupo> org.springframework </groupid> <artifactid> spring-aoop </artifactid> </artifactid> </artifactid> <MoupRid> org.springframework </groupid> <artifactId> test test </artifactid> </pendency> <!-Spring-OXM Dependencies-> <Spendency> <MoupRupid> org.codehaus.castor </groupId> <AtifactID> Castor-xml </artifactId> <PROLELED> 1.3.3 </Versión> </Versión> <Aspendin> <Spendency> <MoupRid> com.fasterxml.jackson.core </groupid> <artifactid> jackson-databind </artifactid> <verserse> 2.4.2 </versión> </pendency> <ependency> <grupoD> com.fasterxml.jackson.dataformat </groupid> <artifactid> jackson-data-data-data--> com.fasterxml.jackson.dataformat </groupid> <artifactid> jackson-data-data-data-- </arthafact> </artfact> <versión> 2.4.2 </ververy> </pendency> <!-Spring-AOP Dependency-> <Spendency> <MoupRoD> org.aspectj </groupid> <artifactid> aspectojweaver </artifactid> <version> 1.8.2 </versión> </dependence> <!-Cargar archivo-> <Entewerency> <ProupId> inyume-FilePload </groupid> <artifactid> commons-fileUpload </artifactid> <versión> 1.3.1 </versión> </pendency> <!-mysql-> <pendency> <MoupRupid> mysql </groupid> <artifactID> mysql-connector-java </artactid> <sione> $ {mysql.version} </versión> </versión> </artifinidad> < <Persion> $ {myBatis.Version} </versewer> </pendency> <epardency> <MoupRiD> org.mybatis </groupid> <artifactid> mybatis-spring </artifactid> <version> $ {mybatis.spring.version} </verversion> </pelepency> <!-MyBatis Generator-> <Spende <Spender> <Paper) <MoupRid> org.mybatis.Generator </groupid> <artifactid> myBatis-Generator-core </artifactid> <verserse> 1.3.2 </verversion> <cope> compilar </cope> <pectional> true </opcional> </dependency> <!-Page Plugin-> <Efferency> <ProupId> com.github.pageHelper </groupid> <artifactId>pagehelper</artifactId> <version>${pagehelper.version}</version> </dependency> <!--General Mapper--> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>${mapper.version}</version> </dependency> <dependency> <MoupRid> org.apache.commons </groupid> <artifactid> commons-lang3 </artifactid> <verserse> 3.3.2 </versión> </pendency> </pendencs> <epeverencymanagement> <pendencies> <pendency> <proupId> org.springfrframework </groupid> <artifactid> sprame-flamework-bom </artifactid> <PROPLESA> $ {Spring.version} </ververy> <proy> pom </pype> <cope> import </cope> </pendency> </dependency> </pendency> </pendencymanagement> <repositorios> <spositorio> <id> nexus </id> <necin> nexus privado local </name> <Url> http://maven.oschina.net/content/groups/public/ </ url> <loteseS> <Dabled> true </habilitado> </lotess> <Snapshots> <Dabled> false </s habilitado> LetraseS </name> <url> http://oss.sonatype.org/content/repositories/releases </sl> <lotess> <Dabled> true </habilitado> </slotes> <stapshots> <Eneded> false </habilitado> </sapshots> </s Repository> <Prepository> <Id> Sonatype-NExus-ssnapshots <name> Sonatype Nexus Snapshots </name> <URL> http://oss.sonatype.org/content/repositories/snapshots </ url> <lotess> <Dabled> false </habilitado> </relates> <Snapshots> <Enedabled> true </Endably> </snapshots> </pository> </repository> </repository> </Repository> </build> <glugins> <uproupid> org.apache.maven.plugins </groupid> <artifactid> maven-compiler-plugin </artifactid> <version> 3.2 </versión> <figuration> <overeur> 1.7 </overgue> <port Target> </target> </configure> </glugin> </complementos> </plugins </beard>ApplicationContext.xml
<? xml versión = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.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.springframe 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.springframework.org/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd " escaneo-> <context: component-scan base-pakage = "com.krry"> < /context: component-scan> <!-importar archivos de recursos externos-> <context: property-placeholder ubicación = "classpath: jdbc.properties" /> <!-Configure la fuente de datos de druid-> <bean id = "dataSource" init-method = "destruye" destruye "-method =" "Close" Close "Close". name = "DriverClassName" value = "$ {db.driver}" /> <propiedad name = "url" value = "$ {db.url}" /> <propiedad name = "username" value = "$ {db.username}" /> <name de propiedad = "contraseña" value = "$ {db.password}" /> </ / />! id = "txmgr"> <propiedad name = "dataSource" ref = "dataSource"> </property> </bean> <!-enable el controlador de anotación de transacciones-> <tx: annotation-confired transaccion-ganager = "txmgr"/> <!-Configure mybatis myBatissessionFactory-> <bean id = "sqlsession" <"sperty" <"sperty" <"sperse" <"sperse" <"sperse" <"" "" "" "" "" "" "" "". "SqlSession" <"" "" "" "" "". "Sqlsession" <"" "" "" "" "." SqlSession "<" "" "" ". ref = "DataSource"/> <Property Name = "configLocation" value = "classpath: myBatis-Config.xml"> </protpers> <Property name = "typealiasespackage" value = "com.krry.entity"/> <Property Name = "Plugins"> <Array> <En.> <!-La configuración aquí demuestra cómo usarlo. Si no lo entiende, debe eliminar la siguiente configuración-> <Property Name = "Propiedades"> <valor> </value> </property </ Bean> </Array> </Property> </Bean> <!-La configuración puede escanear un escáner que puede escanear el mapeador-> <Bean> <!-Si hay rutas de informes múltiples, solo separarlos con Commas-> <Propiedad Nombre = "BasePackage" "BasePackage" value = "com.krry.mapper"> </property> <Property name = "sqlsessionFactoryName" value = "sqlsessionFactory"> </propiety> </les>mybatis-config.xml
<? xml versión = "1.0" encoding = "utf-8"?> < name = "Cacheenabled" value = "true" /> <!-Apague la carga instantánea del objeto asociado para el rendimiento-> <setting name = "lazyLoadingEnabled" value = "true" /> <!-Establezca la forma de carga del objeto asociado. Aquí hay un campo de carga a pedido (el campo de carga es especificado por SQL). Todos los campos de la tabla asociada no se cargarán para mejorar el rendimiento-> <setting name = "agressiveRiveLAwaring" value = "false" /> <! Para consultas SQL desconocidas, se permiten que se devuelvan diferentes conjuntos de resultados para lograr un efecto común-> <setting name = "multipLaterSultSetSenabled" value = "verdadero" /> <!-Permitir usar columnas etiquetas en lugar de nombres de columna de columna en columna. value = "true" /> <!-Permitir usar valores de clave primarios personalizados (como la codificación UUID de 32 bits generada por el programa como valores clave), y la estrategia de generación PK de la tabla de datos se sobrescribirá-> <setting name = "useGeneratedKeys" value = "true" /> <!-dar un soporte de resultados de resultados para el mapaje de campo de campo < </etenchings> <pyetealias> <!-alias para objeto de usuario personalizado-> <!-<typealias type = "com.krry.mybatis.sysmanage.entity.user" alias = "user"/>-> <!-Definición de lotes alias-> <packer = "com.krry.entity"/> </typealiases> </configuración>
springmvc.xml
<? xml versión = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.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.springframework.org/schema/schemhema" " xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/contextExt http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.springframework.org/schema http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.Xsd "> < FormattingConversionServiceFactoryBean-> <mvc: annotation-driven> <mvc: mensaje-confonverters registre-defaults = "true"> <bean> <propiedad name = "admitededMediatypes"> <List> <alon valor> text/lisin; charset = utf-8 </valor> <valor> text/html; charset = utf-8 </valor </list> </list> <bean/> <bean/> <bean> <bean> <property name="prefixJson" value="false" /> <property name="objectMapper"> <bean> <!-- Handle the date type in the responseBody--> <property name="dateFormat"> <bean> <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" /> </bean> </Property> <!-No se muestra cuando el campo es nulo-> <Property name = "SerializationInclusion"> <valor tipo = "com.fasterxml.jackson.annotation.jsoninclude.include"> non_null </alon value> </bean> </property> <propers name = "con compatible conmediatypes"> <In List> <Value> aplicación/json; <valor> aplicación/x-www-form-urlencoded; charset = utf-8 </alone> </list> </propiional> </aBre> </mvc: mensajes-Converters> </mvc: annotation-driven> <!-paquete de escaneo-> <context: component-scan-base-trackage = "com.krry.constroller"> </////scan de componente de componente a statscan a stattate a statsate a statcan a statcan a stattate a stattat. Los archivos deben establecerse, porque en la configuración de SpringMVC, todas las solicitudes (.do, adduser, js/image/css) en este proyecto se analizarán por SpringMVC, y todos los archivos de recursos estáticos deben filtrarse y liberarse-> <! mapping = "/resource/**" ubicación = "/resource/"/> <!-Ver Rendering jsp/freeMaker/Velocity-> <Bean> <!-Cree una ruta al almacenamiento de la página-> <Property name = "prefix" value = "/web-Inf/Pages/"> </Property> <!-Archivo Suffix-> <Nombre de propiedad = "Sufix" Value = ".
JDBC.Properties y Log4J.Properties no necesitan mostrarse, son casi lo mismo
web.xml
<? xml versión = "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/javaeeee/web-app_2_5.xsd" 2.5 ">" " <Spant-Name> Maven_PageHepler </splay-Name> <Welcome-file-List> <Welcome-File> index/index </legente-file> </bienvenido-file-list> <context-param> <amamname> contextciglocation </amamname> <amam-value> classpath: application.xmml </amam-value> </searner> <Oyerer-class> org.springframework.web.context.contextloaderListener </oyeyer-class> </oyeyer> <searcher> <secher-class> org.springframework.web.util.introspectORCleanUpplistener </earcher-class> </oyeer> <filter> name> encoding </filtre-name> <Scilia-Class> org.springframework.web.filter.CharacterIncodingFilter </filter-class> <Init-param> <amamname> codificación </param-name> <amam-value> utf-8 </amam-value> </initparam> </filtre> <filter-papping> <ferry-name> encoding </filtre>-name> <Url-Pattern>/*</url-Pattern> </filter-mapping> <ervlet> <servlet-name> maven_pagehepler </servlet-name> <ervlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <ic-param> <amamname-Name> contextConfiglocation </paramname> <amam-value> classpath: springmvc.xml </param-value> </ init-param> </servlet> <servlet-mapping> <ervlet-name> maven_pagehepler </servlet-name> <url-pattern>/index/index </url-pattern> </servlet-mapping> <ervlet-mapping> <ervlet-mapping> <Servlet-name> maven_pagehepler </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </beb-app>
Clase de entidad: country.java
paquete com.krry.entity; public class Country { / *** Key primario* / ID de Integer Private; / *** Nombre*/ String private CountryName; / *** Código*/ String private CountryCode; Public Country (ID de entero, String CountryName, String CountryCode) {this.id = id; this.countryName = CountryName; this.countrycode = countrycode; } / *** Obtenga la clave principal** @return ID - Key primario* / public Integer getId () {return id; } / *** Establecer la tecla primaria** @param ID Clave primaria* / public void setid (ID integer) {this.id = id; } / *** Get Name** @return CountryName - Name* / public String getCountryName () {return CountryName; } / *** set nombre** @param nombre de nombre de campo* / public void setCountryName (String CountryName) {this.countryName = CountryName; } / *** Get Code** @return CountryCode - Code* / public String getCountryCode () {return CountryCode; } / *** Establecer código** @param CountryCode Code* / public void setCountryCode (String CountryCode) {this.countrycode = countryCode; }}Params.java
paquete com.krry.entity;/** * * params * @author krry * @version 1.0.0 * */public class params {private entero pagesize = 10; Integer privado pageno = 0; Public Integer getPageno () {return pageno; } public void setPageno (Integer pageno) {this.pageno = pageno; } public Integer getPageSize () {return PageSize; } public void setPageSize (Integer PageSize) {this.pagesize = PageSize; }} Capa de persistencia: CountryMapper.java
paquete com.krry.mapper; import java.util.list; import com.krry.entity.country;/** * * mapper: operar base de datos * @author krry * @version 1.0.0 * */public interface countryMapper {/** * Query * @param params * @return */public List <Country> Finds ();); / ** * Calcule * com.krry.dao.admin * Nombre del método: CountBlogs * @author Krry * @param params * @return int * @exception * @since 1.0.0 */ public long Counts (); } CountryMapper.xml
<? xml versión = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtdd"> <mperspace = "com.kry.contry. /<
Interfaz de la capa de negocios:
paquete com.krry.service; import java.util.hashmap; import java.util.list; import javax.servlet.http.httpservletRequest; importar org.apache.iBatis.annotations.param; import.github.pagehelper.pageInfo; importar commry.entity.Country; com.krry.entity.params;/** * Capa de servicio: Handle Business Logic (implementada en impl) * @author asusaad * */public interface icountryservice {/** * consulta de paginación para todos los blogs * @param params de parámetros de paginación Pageno (número de página), PageSize (número de consultas por página) * @@Param Params Parameters PageNo PageNo Pageno), PageSize (número de consultas por página) * @@Param Params Pagation Parameters PageNo Pageno), PageSize (número de consultas por página) * @@Param Params Parameters Pageno Pageno (Page), PageSize (número de consultas por página) * @@Param Params Parameters Pageno Pageno (Page Page Encuentra (parámetros de parámetros); / ** * Calcule el número de blogs * @param params * @return */ public long Counts (); } Clase de implementación de la capa de negocios
paquete com.krry.service.impl; import java.util.hashmap; import java.util.list; import org.springframework.beans.factory.annotation.aUtowired; import org.springframework.stereotype.service; import com.github.pagehelper.pagehelper; import com.github.pagehelper.pageInfo; import com.krry.entity.country; import com.krry.entity.params; import com.krry.mapper.countrymappers; import com.krry.service.iCountryservice;/*** Implementando el servicio de servicio; Asusaad * */ @ServicePublic Classervice implementos IcountryService {@aUtowired privado CountryMapper CountryMapper; /*** consulta*/public PageInfo <Country> Finds (Params Params) {// Query int pageno = params.getPageno (); int pageSize = params.getPageSize (); PageHelper.StartPage (Pageno, PageSize); List <Country> Blogs = CountryMapper.Finds (); // Envuelve el resultado con PageInfo PageInfo <Country> PageInfo = new PageInfo <Country> (blogs); devolver PageInfo; } / ** * Cálculo * @param params * @return * / public long Counts () {long couts = countryMapper.counts (); return couts; }} Capa de control: krrycontroller.java
paquete com.krry.controller; import java.util.arrayList; import java.util.hashmap; import java.util.list; import org.junit.test; import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; importar org.springframework.web.servlet.modelandview; import.github.pagehelper.pageInfo; importar comas. com.krry.entity.params; import com.krry.service.icocom. ** * KrryController * Layer del controlador, reenviado como solicitud * @author asusaad * */ @controlador // significa que es un patrón multi-casos, y la capa web retrocedió por cada usuario es diferente @RequestMapping ("/") Public Class Krry Icountryservice Countryservice; /*** Página de inicio y consulta de paginación* @return*/@RequestMapping ("/index") Public ModelAndView Index (Params Params) {ModelAndView ModelAndView = new ModelAndView (); // primero la primera página, consulta 10 params.setPageno (1); params.setPageSize (10); PageInfo <Country> PageInfo = CountryService.Finds (Params); List <Country> clist = pageInfo.getList (); // Cantidad de consulta Long Couts = CountryService.Counts (); modelandView.addoBject ("clist", clist); modelandView.addoBject ("Couts", Couts); modelandView.setViewName ("índice"); return ModelAndView; }/** * Consulta de paginación para la solicitud de Ajax * @param params * @return */@ResponseBody @RequestMapping ("/LoadData") public Hashmap <String, Object> LoadData (Params Params) {Hashmap <String, Object> MAP = New Hashmap <String, Object> (); PageInfo <Country> PageInfo = CountryService.Finds (Params); List <Country> clist = pageInfo.getList (); map.put ("clist", clist); mapa de retorno; } //}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.