integração Springboot plugue MyBatis e uso PageHelper

MyBatis usando RowBounds de paginação, muito conveniente, não há necessidade de limite de gravação na instrução SQL, SQL MyBatis costura automaticamente, acrescentando limite o núcleo é na camada de interface mapeador, quando a participação em massa RowBounds de entrada (int offset, limite int) objetos a paginação completa

offset: pagenum (p poucos, pode automaticamente ir para a página seguinte) (Se este parâmetro está configurado pageHelper ainda olhando apenas para o próximo registro)

limite: pageSize (cada página mostra o número de registos)

Nota: Uma vez que o máximo permitido java inteiro 2147483647, por isso limitar o inteiro máximo que pode ser utilizado é 2147483647, remova descartável grandes quantidades de dados pode causar um estouro de memória, então limite cautela utilizado no caso de grandes volumes de dados

Conclusão: RowBounds maior vantagem é poupar os melhores, sem limite de limite na declaração xml, mas remontado com PageHelper uso RowBounds objetos

1. A introdução de github relacionadas com pacote

   		<dependency> //spring导入这个
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.6</version>
        </dependency>
        <dependency> //springboot导入这个
	    	<groupId>com.github.pagehelper</groupId>
		    <artifactId>pagehelper-spring-boot-starter</artifactId>
	    	<version>1.2.3</version>
		</dependency>
        

2. application.yml colocado

pagehelper:
    helperDialect: mysql //自动检测当前的数据库链接,自动选择合适的分页方式 也即说明方言为mysql
    reasonable: true //对页码小于0的时候有帮助
    page-size-zero: true //当页码为0的时会查找所有记录
    supportMethodsArguments: true
    params: count=countSql
    offset-as-page-num: true //将offset作为pagenum 即实现了自动翻页
 

3. Importante
método PageHelper.startPage Importante
única imediatamente após o primeiro método PageHelper.startPage método (Select) MyBatis inquérito será paginado .

Não configure a pluralidade de plug-in guias
não configurar a pluralidade de plug-in sistemas de paginação (usando Spring, MyBatis-config.xml e configuração Spring, selecionar um, não simultaneamente uma pluralidade de plug-in tabs)!

Paginação plug-in não suporta paginação para instrução de atualização com
respeito à atualização sql com excepção, para tais recomendações sql página do manual lances em tempo de execução, depois de todo esse sql precisa de atenção.

plug-in de paginação não suporta mapeamentos resultado aninhadas
devido aos resultados de uma abordagem aninhada levará ao conjunto de resultados é recolhido, para que a página de resultados da consulta depois de dobrar o número total será reduzido, não pode garantir o número correto de resultados paginados.

4. A execução de código

1. Ordenar consulta não usa pagehelper

    List<Route> routeList = routeMapper.findByPage(5, "%北京%", 0, 5);

instrução SQL (uso do limite) e o mapeador de definição de método

    @Select("select * from tab_route where cid = #{param1}   AND rname LIKE  #{param4}  LIMIT #{param2} ,#{param3} ")
    public List<Route> findByPage(int cid, int start, int pageSize, String rname);

2. Use chamada pagehelper caminho com rowbound

     List<Route> routeList = routeMapper.findByPage(5, "%北京%", new RowBounds(0, 5));

instrução SQL e definição de método mapeador

    @Select("select * from tab_route where cid = #{param1}  AND rname LIKE  #{param2} ")
    public List<Route> findByPage(int cid, String rname, RowBounds rowBounds);

Resultados rowBounds (0,5) e quando rowBounds (2,5), como disse anteriormente tempo
se o application.yml dispostos compensar-as-page-num = verdadeiro automaticamente aleta
Aqui Insert Picture Descrição

Figura 1. rowBounds (0,5)
linha

A Fig. 2
acima são rowBounds (2,5) pode ser visto a partir deste é o registo da base de dados 6 e, mais tarde, é a segunda principal (pois o conteúdo da página e página 1 0 são os mesmos, como mostrado antes de gravar cinco)

  1. O método empregado PageHelper PageHelper.startPage paginação consulta classe pode paginação ()
    que é seguido pelo primeiro método será paginado select (select não necessariamente tem que começar no início do widget pode encontrar automaticamente determina se a operação é uma consulta)
      //分页查询采用PageHelper 能分页 /紧跟着的第一个select方法会被分页
        PageHelper.startPage(2, 5);
        List<Route> routeList = routeMapper.selectByPage(5, "%北京%");//考察是不是只有select开头的方法才可以 其实并不是

instrução SQL e definição de método mapeador

  @Select("select * from tab_route where cid = #{param1}  AND rname LIKE  #{param2} ")
    List<Route> selectByPage(int cid, String rname);

Como resultado FIGS Túlio

  1. Paginação parâmetros de consulta utilizando a chamada de método
        List<Route> routeList = routeMapper.findByPage(5, "%北京%", 0, 5);

instrução SQL e definição de método mapeador

    //参数方法的方式调用
    @Select("select * from tab_route where cid = #{param1}  AND rname LIKE  #{param2} ")
    public List<Route> findByPage(
            @Param("cid") int cid,
            @Param("rname") String rname,
            @Param("pageNum") int pageNum,
            @Param("pageSize") int pageSize
    );

Como resultado FIGS Túlio

Além disso, note que:
Não configurado
compensar-como-página-NUM:
verdadeiro como
rowBounds consulta (0,5) e (2,5) rowBounds quando

Ou usando
PageHelper.offsetPage ();
O
PageHelper.offsetPage consulta (0, 5) e PageHelper.offsetPage (2, 5)
que, quando a consulta não automaticamente, mas apenas olhando guia para baixo poucos registros 2

Aqui Insert Picture Descrição
Figura 3. rowBounds (0,5)

Aqui Insert Picture Descrição
Figura 4. rowBounds (2,5) comparação pode ver claramente Fig. 2, mas não apenas para descobrir a dois guia gravação para baixo

Erro:
vai reclamar Estilo rowbound existem métodos e parâmetros de métodos
Aqui Insert Picture Descrição
de métodos rowbound determinação e parâmetros método opção com um método em que uma chamada pode ser seleccionado a partir de dois

Referência:
Importante

MyBatis usando diferença pagehelper-spring-boot-starter eo pagehelper

Usage - Site Oficial

Publicado 81 artigos originais · ganhou elogios 19 · vista 3626

Acho que você gosta

Origin blog.csdn.net/c22cxz/article/details/104356686
Recomendado
Clasificación