Dizem que é o melhor uso, definitivamente não é uma brincadeira, mas muitas pessoas não entendem por que usam esse plug -in. Não é bom usar o SQL por caligrafia e paginação do SQL ...
Então, eu escrevi especialmente um exemplo como este para explicar por que é o melhor.
Suponha que tenhamos escrito a interface do mapeador e XML, como segue:
interface pública sysloginLogMapper { / ** * Consulta o login Log com base nas condições da consulta * @param logip * @param nome de usuário * @param logIndate * @param exitdate * @return * / list <SysLoginlog> findsysLoginlog (@Param ("Logip) Logip, Logip, Logip, String logIndate, @param ("exitdate") string exitdate, @param ("logerr") string logerr); } <? xml versão = "1.0" coding = "utf-8"?> <! namespace = "com.asternie.sys.dao.sysLoginLogMapper"> <select id = "findsysLoginlog" resultType = "com.asternie.sys.vo.model.sysLoginlog"> select * de sys_login_log a <fest = "username! a.UserID = B.UserID </if> <where> <se test = "logip! '%' ||#{nome de usuário} || '%') </if> <if test = "logIndate! = nulo e logindate! = '' '"> e to_date (substr (a.logindate, 0,10),' yyyy-mm-dd ') = to_date (#{logIndate},'yyyyyyym-mm') test = "exitdate! = nulo e exitdate! = ''"> e to_date (substrato (A.Exitdate, 0,10),'aaaa-mm-dd ') = to_date (#{exitdate},' yyyy-mm-dd ') </if> <if test = "" Leader! '%' ||#{Logerr} || '%' </f>Embora seja um exemplo simples, o XML aqui não é tão simples.
Se você já possui alguns métodos Mybatis prontos, como o acima, e eu quero pagar esta consulta agora, o que devo fazer?
Se for SQL manuscrito, preciso adicionar duas interfaces, uma consulta a contagem total e a outra mudando para a paginação. Não parece difícil copiar e colar no XML e alterar a instrução. Você fez isso?
Se estiver usando este plugin, o que eu preciso fazer? ? ?
Para esses métodos que o Mybatis escreveu, não preciso mudar nada.
Mas a camada de serviço pode precisar ser movida. Exemplo específico acima. Veja o código de chamada da camada de serviço abaixo.
Código quando a paginação não é necessária:
Public List <SysLoginLog> FindsysLoginlog (String Loginip, String UserName, String LogIndate, String EXITDATE, String Logerr) lança BusinessException {return sysloginlogmapper.findsysLoginlog (loginip, nome de usuário, logIndate, exitdate, Legererr); } Código após adicionar função de paginação:
public PageHelper.Page <SysLoginLog> findsysLoginLog (String Loginip, String UserName, String LogIndate, String EXITDATE, String Logerr, Int PageNumber, Int PageSize) lança negóciosexception {PageHelper.StartPage (Pagenumber, Pagesize); sysloginLogmapper.findsysLoginlog (loginip, nome de usuário, logindate, saída, Logerr); retornar pageHelper.endPage (); } Em comparação:
O valor de retorno foi alterado da lista <SysLoginLog> para PageHelper.Page <SysLoginlog>
Dois parâmetros foram adicionados, pagenumber e PageSize
Então, no código do processo, é chamado primeiro
PageHelper.StartPage (PagenBumber, Pagesize);
O StartPage diz ao interceptador que vou começar a pagar. Os parâmetros da Pagada são esses dois.
Em seguida, chame o código Mybatis original:
sysloginLogmapper.findsysLoginlog (loginip, nome de usuário, logindate, saída, Logerr);
É estranho que não haja valor de retorno recebido aqui? De fato, o PageHelper recebeu automaticamente o valor de retorno. O valor de retorno pode ser recuperado através do seguinte código:
PageHelper.endPage ();
Ao mesmo tempo, a página final disse ao Interceptor que eu encerrei a paginação e não preciso mais de você.
Você acha que esse código é simples ou manuscrito SQL é simples?
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.