Говорят, что это лучшее использование, это определенно не шутка, но многие люди не понимают, почему они используют этот плагин. Разве не хорошо использовать SQL путем почерка и страниц SQL ...
Поэтому я специально написал пример, подобный этому, чтобы объяснить, почему это лучшее.
Предположим, мы написали интерфейс Mapper и XML следующим образом:
public interface sysloginlogmapper { / ** * Запрос журнала журнала на основе условий запроса * @param logip * @param username * @param logindate * @param exitdate * @return * / list <sysloginlog> findsysloginlog (@param ("logip") String logip, @param (us username ") String, username") String, username ") String, username") string, username ") String, username") String, username ") String, username"). @Param ("logindate") строка Logindate, @param ("exitdate") string usitdate, @param ("logerr") string logerr); } <? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper.org/dtd/mybatis-3-mapper.dtd " namespace = "com.easternie.sys.dao.sysloginlogmapper"> <select id = "findsysloginlog" recordytype = "com.esternie.sys.vo.model.sysloginlog"> select * from sys_login_log a <if test = "username! ON A.USERID = B.USERID </if> <where> <if test = "logip! = null и logip! = '"> a.logip, как'%'||#{logip} ||'%'</if> <if test = "username! = null и username! '%' ||#{username} || '%') </if> <if test = "logindate! = null и logindate! = ''"> и to_date (substr (a.logindate, 0,10), 'yyyy-mm-dd') = to_date (#{logindate}, 'yyy-mm-mm-dd') = to_date (#{logindate}, 'yyy-mm-dd') test = "exitdate! = null и exitdate! = ''"> и to_date (substr (a.exitdate, 0,10), 'yyyy-mm-dd') = to_date (#{exitdate}, 'yyyy-mm-dd') </if> <if test = "logerr! '%' ||#{logerr} || '%' </if> </where> order by logid desc </select> </mapper>Хотя это простой пример, XML здесь не так просто.
Если у вас уже есть готовые методы Mybatis, такие как вышесказанное, и я хочу сейчас провести страницу этого запроса, что мне делать?
Если это рукописный SQL, мне нужно добавить два интерфейса, один запросил общий счет, а другой переходит на страницу. Не кажется трудно скопировать и вставить в XML, а затем изменить заявление. Вы это сделали?
Если я использую этот плагин, что мне нужно сделать? ? ?
Для этих методов, которые написал Mybatis, мне не нужно ничего менять.
Но уровень обслуживания, возможно, должен быть перенесен. Конкретный пример выше. Посмотрите на код вызова уровня сервиса ниже.
Код при пейджинге не требуется:
Общедоступный список }
Код после добавления функции подкидки:
public pageHelper.page <sysloginlog> findsysloginlog (строка loginip, string usernate, string logindate, string exitdate, string logerr, int pagenumber, int pagesize) throws businessexception {pagehelper.startpage (pagenumber, pagesize); sysloginlogmapper.findsysloginlog (loginip, имя пользователя, logindate, exitdate, logerr); return pagehelper.endpage (); } По сравнению:
Возвратное значение было изменено из списка <sysloginlog> на pagehelper.page <sysloginlog>
Были добавлены два параметра: PageNumber и PageSize
Затем в коде процесса он сначала называется
PageHelper.StartPage (PageNumber, PageSize);
Startpage сообщает The Interceptor, что я собираюсь начать пейджинг. Параметры страниц - эти два.
Затем позвоните в оригинальный код Mybatis:
sysloginlogmapper.findsysloginlog (loginip, имя пользователя, logindate, exitdate, logerr);
Странно, что здесь нет возвратной стоимости? На самом деле, PageHelper автоматически получил возвратное значение. Возвращаемое значение можно получить с помощью следующего кода:
PageHelper.endPage ();
В то же время, Компания Endpage сказала The Interceptor, что я закончил пейджинг, и вам больше не нужна.
Как вы думаете, такой код простой, или от рукописного SQL прост?
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.