Alguns dias atrás, compartilhei a implementação da paginação por consulta manuscrita de paginação SQL aqui. Agora, vamos dar uma olhada no uso da página do plug -in de paginação Mybatis para implementar a paginação.
O motivo do uso do plug-in de paginação é simplificar a escrita do código SQL e obter uma melhor paginação física, o que também pode reduzir erros do que escrever um código SQL de paginação completa.
Mybatis Pagin Plugin Demo Project Endereço: FREE-MYBATIS_PAGEHELPER_JB51.RAR
Eu uso a implementação do projeto MAVEN aqui:
1. Primeiro importe as dependências do plug -in de paginação:
<Depencency> <PuerpId> com.github.pagehelper </foupidId> <ArtifactId> PageHelper </ArtifactId> <versão> 5.0.0 </versão </dependency>
2. Configure o plug-in de interceptor de paginação
Existem dois plug-ins de interceptores de página de configuração para documentos oficiais
1. Configure o plug-in interceptador na configuração do Mybatis XML
<!- A localização dos plugins no arquivo de configuração deve atender aos requisitos, caso contrário, um erro será relatado. A ordem é a seguinte: Propriedades?, Configurações?, TypeAliases?, TypeHandlers?, ObjectFactory?, ObjectWrapperFactory?, Plugins?, Ambientes?, DatabaseIdProvider? interceptor = "com.github.pageHelper.pageIntercept"> <!-Use o seguinte método para configurar parâmetros, e haverá todos os parâmetros introduzidos posteriormente-> <nome da propriedade = "param1" value = "value1"/> </plugin> </flugins>
2. Configure o plugin interceptador no arquivo de configuração da mola
Usando o método de configuração de atributos da Spring, você pode usar o atributo plugins para configurá -lo como o seguinte:
<bean id = "sqlSessionFactory"> <!-preste atenção a outras configurações-> <propriedade name = "plugins"> <Array> <Bean> <propriedade name = "Properties"> <!-Configure parâmetros usando o seguinte método, configure uma linha-> <value> params = value1/</value </srest> </beans> </beaan </beans </beans </beans> </bean>
Aqui eu uso o segundo tipo do meu projeto, e os parâmetros são configurados de acordo com a situação real, ou eles podem ser configurados sem
3. Métodos de chamada
As declarações SQL da camada de mapeador são escritas de acordo com o método de consulta geral, sem escrever paginação:
<!-consulta de paginação-> <select id = "encontra" resultype = "country"> selecione id, countryname, countrycode do país </leclect>
Interface da camada de mapeador:
/*** Query* @param params* @return*/list public <sountry> encontra ();
Interface da camada de serviço de serviço de serviço:
/ ** * Consulta de paginação * @param parâmetros parâmetros de paginação pageno (número da página), PageSize (número de consultas por página) * @return */ public PageInfo <Country> encontra (params params);
Classe de implementação da camada de negócios de serviço: PageHelper.startPage (1, 10); O primeiro parâmetro indica qual página e o segundo parâmetro indica o número de registros exibidos em cada página
Depois de executar o PageHelper.startPage (1, 10); Declaração, o primeiro método de seleção imediatamente a seguir será paginado: List <Country> blogs = countrymapper.finds ();
Em seguida, use o PageInfo para envolver os resultados da consulta, PageInfo <Country> PageInfo = new PageInfo <Country> (blogs);
e devolver a PageInfo para a camada de controle
/*** Query*/public PageInfo <Country> encontra (params params) // consulher int pageno = params.getpageno (); int paagysize = params.getPagesize (); PageHelper.startPage (Pageno, Pagesize); List <Pound> blogs = countrymapper.finds (); // Enrole o resultado com PageInfo <Country> PageInfo = new PageInfo <Country> (blogs); retornar PageInfo; }
Depois de devolver a PageInfo aqui, passe os parâmetros de paginação dos parâmetros e analise a PageInfo na camada do controlador:
List <Pound> clist = PageInfo.getList (); Em seguida, coloque o Clist no escopo e use <c: foreach> </c: foreach> Para obter um loop para obter dados de paginação/*** página inicial e consulta de paginação* @return*/@requestMapping ("/index") public ModelAndView Index (params params) {ModelAndView ModelAndView = new ModelAndView (); // Primeiro a primeira página, Query 10 params.setpageno (1); params.setPagesize (10); PageInfo <Country> PageInfo = CountryService.finds (Params); List <Pound> clist = PageInfo.getList (); // quantidade de consulta longa couts = countryService.Counts (); ModelAndView.adDObject ("Clist", Clist); ModelAndView.adDObject ("Couts", Couts); ModelAndView.SetViewName ("Index"); retornar modelandview; }O exposto acima são todos os códigos de implementação das principais páginas. Agora observe os códigos de todas as configurações e implementações:
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/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <ModelVersion> 4.0.0 </modelVersion> <puperid> com.krry </groupiD> <stifactId> MAVEN_PAGEHEPLER_ORA </ArtifactId> <backaging> waring> waring> waring> <name> MAVEN_PAGEHEPLER_ORA </Name> <url> http://maven.apache.org </url> <sperSties> <Project.build.sourcencoding> utf-8 </project.build.sourceding> <!-mybatis generator-> jejertis-> jeaVeStis-MyBatis-8 </Project.build.sourceding> <!-mybatis generator-> jeav-> j! <getJavaProject> $ {baseado}/src/main/java </vogemjavaproject> <ventingmapperPackage> com.isea533.mybatis.mapper </TargetMapperpackage> </TargetModelPackage> com.isea533.mybatis.modelPelPeLPEMOMOMEMEMAGEMEMAGEMEMAGEMEMELATEMELATEMELATEMELAGEMEMATEMELAGEMEMATIMEMAPATIMEMA-MODELEMOMAPLEMEMAPATIMEMAPATIMEMA-MODELPOMELATEMEMAPATIMEMAPATIMA-MODELEMEMATIMAGEM.ModelPeLPAghelping> <targetResourcesProject>${basedir}/src/main/resources</targetResourcesProject> <targetXMLPackage>mapper</targetXMLPackage> <!-- Compile jdk version--> <jdk.version>1.6</jdk.version> <!-- Dependency version--> <mybatis.version>3.3.1</mybatis.version> <pappper.version> 3.3.6 </mapper.version> <PageHelper.version> 5.0.0 </pagehelper.version> <ysql.version> 5.1.29 </mysql.version> <pring.version> 4.1.2.release </spring.version> <Batis.spring.version> 1.2.4 </mybatis.spring.version> </sperties> <pendenciens> <pendencency> <voundid> junit </foupiD> <scope> Teste </DEPENDENÇÃO </dependência> <sundery> <sunder> </version> <rourpio> </Scope> </dependência> </dependência> </dependência> <sperence> <sundery> <scopi> </Scope> </scope> </dependinncia> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!--web--> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.ws.rs</groupId> <artifactId>javax.ws.rs-api</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifactId> <version>1.0</version> </dependency> <dependency> <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--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> </dependency> <dependency> <groupId>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> <GrupidId> org.springframework </stutifactId> </dependency> <pendence> <puperid> org.springframework </roupidId> <TRARFACTID> spring-web </artifactId> </dependency> <Pendence> <Prinand> org.springFramework <//GroupId> <stifty> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency> <!--spring-oxm dependencies--> <dependency> <groupId>org.codehaus.castor</groupId> <artifactId>castor-xml</artifactId> <version>1.3.3</version> </dependency> <!--spring-json dependency--> <Depencency> <PuerpId> com.fasterxml.jackson.core </groupId> <TROTIFACTID> Jackson-Databind </ArtifactId> <versão> 2.4.2 </versão </dependency> <pendency> <purfActId> com.fasterxml.jackson.dataformat </groupId> artiftId> com.fasterxml.jackson.dataformat </groupId> artiftid> <Version> 2.4.2 </sistER> </dependency> <!-Spring-AOP Dependência-> <Depencency> <puperid> org.aspectj </frupidId> <stifactId> Ascestjweaver </ArtifactId> <sunders> 1.8.2 </versão> </dependência> <!-OPROPREGUE/FILHO-> <Pusency> <PRESSO> <PRESSO> <PRESSOMILPIL) </siperMy> </sipersy> </dependens> </dependens> </dependency> <ursion> <ursion> 1.8.2.2 </versão> </dependency> <!-OPROUNO/FILHO-> <Pusence> <Pundeid> <TRARFACTID> Commons-FileUpload </ArtifactId> <Versão> 1.3.1 </siers> </dependency> <!-mysql-> <pendency> <pupiid> mysql </roupidId> <lutifactId> mysql-conector-java </siSSERS> </{depafactId> mysql-conlector-java </êxtid> </version> $ { <Depencency> <PuerpId> com.alibaba </frugiD> <stifactId> druid </artifactId> <versão> 1.0.11 </version> </dependency> <!-mybatis-> <pendency> <proupId> org.mybatis </groupid> <Artifactid> mybatis </artiftty> </dependency> <pendency> <voundid> org.mybatis </frupiD> <ArtifactId> mybatis-spring </artifactId> <versão> $ {mybatis.spring.version} </sersis> </ipendency> <!-Mybatis gerador-> <pendence> <brugid> ou. </ArtifactId> <sussion> 1.3.2 </version> <cope> compile </scope> <cptional> true </opcional> </dependency> <!-Page Plugin-> <pendency> <voupid> com.github.pageHelper </GroupId> ArtiftId> <spendency> <voundid> com.github.pageHelper </Groupid> <Versão> $ {PageHelper.version} </sistER> </dependency> <!-General Mapper-> <pendency> <puperid> tk.mybatis </groupiD> <TRAFACTID> mapper </speRifactId> <sipers> $ {mapper.version} </versão> </dependence> <pendence> </ArtifactId> Commons-LANG3 </ArtifactId> <versão> 3.3.2 </version> </dependency> </dependências> <pendencyManagement> <pendências> <pendency> <purbrouDId> org.springframework </groupid> <TRAFACTID> spring-framework-bom </ArtifactId> <sierSersion> $ { <scope>import</scope> </dependency> </dependency> </dependency> </dependencyManagement> <repositories> <repository> <id>nexus</id> <name>local private nexus</name> <url>http://maven.oschina.net/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>sonatype-nexus-releases</id> <name>Sonatype Nexus Releases</name> <url>http://oss.sonatype.org/content/repositories/releases</url> <releases> <inabled> true </abilabed> </leases> <snapshots> <bilted> false </abilabed> </snapshots> </positório> <positório> <d> sonatype-nexus-snapshots </dod> <name> sonatype snapshots nexus </name> <url> http://oss.sonatype.org/content/repositionies/snapshots </url> <lessos> <abilabed> false </habilitado <Puerpid> org.apache.maven.plugins </groupId> <TarifactId> maven-compiler-pplugin </stutifactId> <siets> 3.2 </sipers> <figuration> </fonte> 1.7 </fonte> <lock> 1.7 </target> <//Configurt> </plugin> </plugins> </buckiM> </bucking> </bucking> </Target> 1.7 </-Target> <//Configurt> </Plugins> </plugins> </plugins> </buckin> </build> </buten> </tira> 1.7 </-Target> <//Configur> </plugins> </plugins> </plugins>ApplicationContext.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.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 O objetivo deste estudo foi avaliar a eficácia de um http://www.springframework.org/schema/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aop/aops de http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tg/schema 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 "> <!-Pacote de configuração Digitalização-> <Contexto: componente-Scan Base-Package = "com.krry"> < /context: component-scan> <!-importar arquivos de recursos externos-> <Contexto: Property-placeholder localizador = "Classpath: JDBC.Properties" /> <!-Configure dRuid-hot "" <! <propriedade name = "driverclassName" value = "$ {db.driver}" /> <propriedade name = "url" value = "$ {db.url}" /> <names name = "nome de usuário" value = "$ {db.username}" /> <name = "senha" /"" {db.pass id = "txmgr"> <propriedade name = "DataSource" ref = "DataSource"> </propriedade> </bean> <!-Ative o driver de anotação da transação-> <tx: transação driven de anotação <bination-manager = "txmgr"/> <! name = "DataSource" ref = "DataSource"/> <Propriedade name = "configLocation" value = "classPath: mybatis-config.xml"> </property> <propriedades name = "typeAliasespackage" value = "com.krry.entity"/> <name = " Você não entende, deve remover a seguinte configuração-> <propriedade name = "Propriedades"> <value> </value> </propriedade> </bean> </ray> </propriedade> </bean> <!-a configuração pode digitalizar um scanner que pode digitalizar o mapper como um todo-> <ermP> <!-se houver múltiplo " value = "com.krry.mapper"> </propriedade> <propriedade name = "sqlSessionFactoryBeanName" value = "sqlSessionFactory"> </propriedade> </beans>mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- Global mapper enable cache--> <setting name = "Cacheenabled" value = "true" /> <!-Desligue o carregamento instantâneo do objeto associado para desempenho-> <Configuração name = "LazyLoadingEnabled" value = "true" /> <!-Defina a forma de carregamento do objeto associado. Aqui está um campo de carga sob demanda (o campo de carga é especificado pelo SQL). Todos os campos da tabela associada não serão carregados para melhorar o desempenho-> <Configuração name = "agressiveLazyLoading" value = "false" /> <!-Para consultas SQL desconhecidas, diferentes conjuntos de resultados podem ser retornados para obter um nome comum-> <finfitn Name = "multiperresultsetsenabled" = "True" /> <! value = "true" /> <!-Deixe usar valores de chave primária personalizados (como a codificação UUID de 32 bits gerada pelo programa como valores-chave), e a estratégia de geração PK da tabela de dados será substituída-> <definir nome "useGeneratedKeys" value = "true" /> <!-Nome de acordo com o Nome "para o nome do campo" <!-cache sql para operações de atualização em lote para melhorar o desempenho-> <configuração name = "defaultExecutype" value = "batch" /> <!-Tempo limite se o banco de dados não respondeu por mais de 25.000 segundos-> <fodergrigergmethssSodss "valueout" /"25" /> <nome do nome = "lazyloadTrrigMethss" </fastings> <TyceAlias> <!-Alias para objeto de usuário personalizado-> <!-<typeAlias type = "com.krry.mybatis.sysmanage.entity.user" alias = "user"/>-> <!-Alias de definição em lote-> <Nome do pacote "/com.krry.entity"/> <pypyeliações
springmvc.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/util" xmlns: mvc = "htttp://schema/util" xmlns: mvc = "htttp://schema/util" Xmlns: xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://ww.springframework.org/schema http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-ativar o modo de anotação do modo de anotação-> <Bean/> <! FormattingConversionServiceFactoryBean-> <MVC: AnoTation-Driven> <MVC: Message-Converters Register-Defaults = "True"> <Bean> <propriedades name = "SupportedMediTyPes"> <tist> <Value> text/planing; charset = utf-8 </value> <taltion> text/text/listml> <Value> </bean> <bean/> <bean/> <ean> <ipean> <propriedade name = "prefixjson" value = "false"/> <propriedade name = "objectMapper"> <Bean> <!-lidar com o tipo de data no respostas-> <nome da propriedade "date"> <Bean> <constructor-arg type = " Hh: mm: ss "/> </i bean> </propriedade> <!-não exibido quando o campo é nulo-> <propriedade name =" serializationinclusion "> <value type =" com.fasterxml.jackson.annotation.jsoninclude.include "> não_null </value> </propriedade> </bley <Value> Application/json; charset = utf-8 </value> <value> Application/x-www-form-urlencoded; charset = utf-8 </value> </list> </propriedade> </bean> </mvc: Message-Converters> </mvc: annotcan-driven> <! Base-Package = "com.krry.controller"> </context: component-Scan> <!-O acesso a arquivos de recursos estáticos deve ser definido, porque na configuração Springmvc, todas as solicitações (.do, addUser, js/imagem/css) neste projeto serão divulgadas por springmvc e todos os recursos estática em que os springs-e todos os recursos estática-e todos os recursos da STILMV-e de todos os recursos da STILMVC e todos os recursos estáticos e todos os recursos da SpringMV e todos os recursos da Springn e todos os estatais e todos os recursos da Springn e todos os recursos da Spring e todos os recursos da Spring e todos os recursos de Spring e todos os recursos da Spring e todos os recursos devem <!-<mvc: padrão-servlet-handler //>-> <mvc: recursos mapping = "/Resource/**" location = "/Resource/"/> <!-View rendering jsp/freemaker/velocity-> <Bean> <!-Crie um caminho para o armazenamento de página-> <propriedades> "Prefix" "" = "<! <propriedade name = "sufixo" value = ".
jdbc.properties e log4j.properties não precisam ser exibidos, são quase os mesmos
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/xmls/javaee/web-web-web-web-2.2s.sun.sun.com/ <libe-name> maven_pagehepler </liber-name> <lumer-fil-File-list> <lmed-File> índice/index </limk-File> </lort-File-List> <Context-Param> <amam-name> contextConfiglocation </param-name> <aver-value> ClassPath: AppliMxt.xml </mam-name> <Ilvier-Class> org.springframework.web.context.contextLoaderListener </lister-class> </lister> <lister> <Ivier-class> org.springframework.web.util.introspectorcleanuplistener </lister-class> </slimter> <filter-class> org.springframework.web.filter.characterencodingFilter </filter-class> <ot-param> <amam-name> codificação </amam-name> </param-value> utf-8 </am Param-value> </init-paparam> </filter-mappap> <name> <name> </8ame </value> </init-paparam> </filter--mappap> <name> <name> " <url-pattern>/*</url-tattern> </filter-mapping> <ervlet> <Servlet-name> MAVEN_PAGEHEPRER </Servlet-Name> <Verlet-Class> org.springframework.web.servlet.dispatherservlet </servlet-class> <inic---------migatwork.web.servlet.dispathertlet </servlet-class> <ing----Sax--Max-NuMation> <amam-value> ClassPath: springmvc.xml </param-value> </irit-param> </servlet> <Servlet-mapping> <Vertlet-name> maven_pagehepler </servlet-name> <url-tattern>/index/index </url-tattern> </servlet-mappapping> <url-pattern> <Verlet-name> maven_pagehepler </servlet-name> <url-tattern>/</url-tattern> </servlet-mapping> </web-app>
Classe de entidade: country.java
pacote com.krry.entity; public class país { / *** chave primária* / ID inteiro privado; / *** nome*/ string privada countryName; / *** Código*/ String privada CountryCode; país público (ID inteiro, string countryName, string countrycode) {this.id = id; this.countryName = countryName; this.countrycode = countrycode; } / *** Obtenha a chave primária** @return id - chave primária* / public integer getId () {return id; } / *** Defina a chave primária** @Param ID Tecla primária* / public void SetId (ID do número inteiro) {this.id = id; } / *** Obtenha o nome** @return countryName - nome* / public string getCountryName () {return countryName; } / *** Definir nome** @param countryName nome* / public void setCountryName (string countryName) {this.countryName = countryName; } / *** Obtenha código** @return countryCode - código* / public string getCountryCode () {return countryCode; } / *** Definir código** @param countryCode Code* / public void setCountryCode (String countryCode) {this.countrycode = countrycode; }}Params.java
pacote com.krry.entity;/** * * params * @author krry * @version 1.0.0 * */public classe params {private integer Pagesize = 10; Pageno inteiro privado = 0; public integer getpageno () {return pageno; } public void setPageno (número inteiro pageno) {this.pageno = pageno; } public integer getPagesize () {return pagageSize; } public void setPagesize (número inteiro pageSize) {this.pagesize = Pagesize; }} Camada de persistência: countrymapper.java
pacote com.krry.mapper; importar java.util.list; importar com.krry.entity.country;/** * * mapeador: opere banco de dados * @author krry * @version 1.0.0 * */public countrymapper {/** * query * * / ** * Calcule * com.krry.dao.admin * Nome do método: countblogs * @author krry * @param params * @return int * @exception * @since 1.0.0 */ public long contagens (); } Countrymapper.xml
<? xml versão = "1.0" Encoding = "utf-8"?> <! <!-Query de paginação-> <select id = "encontra" resultype = "country"> selecione ID, countryName, countryCode do país </leclect> <!-consulte o número de blogs-> <select id = "counts" resulttype = "long"> selecione count (*) do país </select> </paiper>
Interface da camada de negócios:
pacote com.krry.service; importar java.util.hashmap; importar java.util.list; importar javax.servlet.http.httpServletReQuest; importação org.apache.ibatis.annotações.param; impor.github.pagehelper.pageInfO; com.krry.entity.params;/** * Camada de serviço: lidar com a lógica de negócios (implementada em implicação) * @author asusaad * */interface pública ICOUntryService {/** * Paginação consulta para todos os blogs * @param params paginatureers pageno (número de página), Pagesize (número de blogs * params); / ** * Calcule o número de blogs * @param params * @return */ public long contagens (); } Classe de implementação de camadas de negócios
pacote com.krry.service.impl; importar java.util.hashmap; importar java.util.list; importar org.springframework.beans.factory.annotation.autowired; import org.springframework.steretype.service; import.springfringfringfristwork.webring.weType.service; import.springfringfringFringBrewB.WeBeBring.weType.service; com.github.pageHelper.pageHelper; importar com.github.pagehelper.pageinfo; importar com.krry.entity.country; importar com.krry.entity.params; shIntRice.krry.mapper.countrymapper; import.krry.Service.icoun.icoun.icountice; Asusaad * */ @ServicePublic Class CountryService implementa o ICountryService {@AUTOWIRED Pountrymapper Pountrymapper; /*** Query*/public PageInfo <Country> encontra (params params) {// consulta int pageno = params.getpageno (); int paagysize = params.getPagesize (); PageHelper.startPage (Pageno, Pagesize); List <Pound> blogs = countrymapper.finds (); // Enrole o resultado com PageInfo PageInfo <Country> PageInfo = new PageInfo <Country> (blogs); retornar PageInfo; } / ** * cálculo * @param params * @return * / public long contagens () {long couts = countrymapper.counts (); retornar couts; }} Camada de controle: krrycontroller.java
pacote com.krry.controller; importar java.util.ArrayList; importar java.util.hashmap; importar java.util.list; importar org.junit.test; import org.springframework.beans.actory.annoTation.outOwired; org.springframework.web.bind.annotation.requestMapping; importar org.springframework.web.bind.annotation.Responsebody; importar org.springframework.web.servlet.modansview; import.github.pagehelper.pageInfO; com.krry.entity.params; importar com.krry.service.icocom. ** * KrryController * Camada do controlador, encaminhada como solicitação * @author asusaad * */ @controlador // significa que é um padrão de múltiplas casas, e a camada da web retorna por cada usuário do @RequestMapping (" ICOUntryService CountryService; /*** Página inicial e consulta de paginação* @return*/@requestMapping ("/index") public ModelAndView Index (params params) {ModelAndView ModelAndView = new ModelAndView (); // Primeiro a primeira página, Query 10 params.setpageno (1); params.setPagesize (10); PageInfo <Country> PageInfo = CountryService.finds (Params); List <Pound> clist = PageInfo.getList (); // quantidade de consulta longa couts = countryService.Counts (); ModelAndView.adDObject ("Clist", Clist); ModelAndView.adDObject ("Couts", Couts); ModelAndView.SetViewName ("Index"); retornar modelandview; }/** * Consulta de paginação para solicitação 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 <Pound> clist = PageInfo.getList (); map.put ("Clist", Clist); mapa de retorno; } //}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.